C# 如何创建存储过程以及调用存储过程

选择要创建的数据库,新建查询
在这里插入图片描述
①创建一个没有参数的存储过程
例如我创建一个查询用户帐号和密码的存储过程

CREATE PROC UserProc
AS //这个地方as可以省略不写
BEGIN //要写begin、end都要写、要么都不写
SELECT Account,Password FROM [User]
END
go

在这里插入图片描述
创建完成后我们可以在数据库的可编程性-存储过程中看到我们所创建的存储过程。
在这里插入图片描述
下面是在sql server 中执行不带参宿的存储过程,我们可以看到执行出来的结果。
执行语句为:
exec 存储过程名称

在这里插入图片描述
在C# 中调用这个存储过程,这里我们首先简单的创建一个控制图应用程序,然后添加一个“SQLHelper”数据库帮助类。
SQLHelper帮助类参考
数据库连接字符串参考
执行出来的结果与我们查询出来的一致:

using Common.Utility;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;

namespace SqlOperate
{
    class Program
    {
        static void Main(string[] args)
        {
            string sqlConnetion = "自己填写";//数据库连接字符串
            string storedProcedureName = "UserProc";//存储过程名称
            var res = SqlHelper.ExecuteDataSet(sqlConnetion, CommandType.StoredProcedure, storedProcedureName);//执行语句
            string acc = res.Tables[0].Rows[0]["account"].ToString();//第一个表的第一行的account字段值
            Console.WriteLine(acc);
            Console.ReadLine();
        }
    }
}

在这里插入图片描述
在这里插入图片描述
②创建一个带参数的存储过程
例如创建一个通过账号查询密码的存储过程

CREATE PROC UserByParameterProc
@account varchar(100) //定义一个参数,并且定义参数类型
AS
BEGIN
SELECT Password FROM [User] where Account = @account
END
go

在这里插入图片描述
在sql server 中执行带参数的存储过程
exec UserByParameterProc 'zhangsan'
在这里插入图片描述
在C#程序中调用带参数的存储过程

using Common.Utility;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;

namespace SqlOperate
{
    class Program
    {
        static void Main(string[] args)
        {
            string sqlConnetion = "自己填写";//数据库连接字符串
            string storedProcedureName = "UserByParameterProc";//存储过程名称
            SqlParameter[] sqlParameter = new SqlParameter[]//参数赋值
            {
                new SqlParameter("@account","zhangsan")
            };
            var res = SqlHelper.ExecuteDataSet(sqlConnetion, CommandType.StoredProcedure, storedProcedureName, sqlParameter);//执行语句
            string acc = res.Tables[0].Rows[0]["Password"].ToString();//第一个表的第一行的account字段值
            Console.WriteLine(acc);
            Console.ReadLine();
        }
    }
}

在这里插入图片描述

与我们上面查询出来的结果一致。

  • 1
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值