选择要创建的数据库,新建查询
①创建一个没有参数的存储过程
例如我创建一个查询用户帐号和密码的存储过程
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();
}
}
}
与我们上面查询出来的结果一致。