一、创建存储过程
数据库——可编程性——存储过程——右击创建存储过程——写入Sql
二、编写调用存储过程基类
//调用SQL存储过程 Proc_BS
//strProc 存储过程名称
//int 参数名
public int ExecuteProcGetParm(string strProc, int scaleC, int scaleAB, int scaleC_1, int scaleAB_1)
{
using (SqlCommand cmd = new SqlCommand(strProc, connection))
{
try
{
cmd.CommandText = strProc;// "Proc_BS";
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter parm = cmd.Parameters.Add("@scaleC", SqlDbType.Int);
parm.Value = scaleC;
parm = cmd.Parameters.Add("@scaleAB", SqlDbType.Int);
parm.Value = scaleAB;
parm = cmd.Parameters.Add("@scaleC_1", SqlDbType.Int);
parm.Value = scaleC_1;
parm = cmd.Parameters.Add("@scaleAB_1", SqlDbType.Int);
parm.Value = scaleAB_1;
parm = cmd.Parameters.Add("@rowcount", SqlDbType.Int);
parm.Direction = ParameterDirection.Output;//返回参数
if (connection.State == ConnectionState.Closed)
{
connection.Open();
SqlDataReader dr = cmd.ExecuteReader();
int rows = int.Parse(cmd.Parameters["@rowcount"].Value.ToString()); //cmd.ExecuteNonQuery();
connection.Close();
return rows;
}
return 0;
}
catch (System.Data.SqlClient.SqlException E)
{
throw new Exception(E.Message);
}
finally
{
connection.Close();
}
}
}
三、调用
返回参数 = ds.ExecuteProcGetParm("存储过程名称", scaleC, scaleAB, scaleC_1, scaleAB_1);