c#调用sqlserver的存储过程
public class DBUntil
{
public static string ConnectStrSL = "Data Source=xxx;Initial Catalog=xxx;uid=xxx;pwd=xxx";
#region 查询数据
/// <summary>
/// 查询主单记录
/// </summary>
/// <param name="dtStrat">开始时间</param>
/// <param name="dtEnd">结束时间</param>
/// <returns></returns>
public static DataTable QureyMasterOrderDatas(DateTime dtStrat,DateTime dtEnd)
{
List<SqlParameter> lstParam = new List<SqlParameter>();
lstParam.Add(new SqlParameter("@Bdate", SqlDbType.DateTime));
lstParam.Add(new SqlParameter("@Edate", SqlDbType.DateTime));
lstParam.Add(new SqlParameter("@mark", SqlDbType.SmallInt));
lstParam.Add(new SqlParameter("@billid", SqlDbType.VarChar));
List<object> lstValues = new List<object>();
lstValues.Add(dtStrat.ToString("D"));
lstValues.Add(dtEnd.ToString("D"));
lstValues.Add(4);//类型 4 主单数据
lstValues.Add("0");
var tb = ExeProdurce("aa_1_asale", lstParam, lstValues);
return tb;
}
/// <summary>
/// 查询项目列表记录
/// </summary>
/// <param name="billid">主单ID</param>
/// <param name="mark">类型 1 2 3 </param>
/// <returns></returns>
public static DataTable QureyDetailOrderDatas(string billid,int mark)
{
List<SqlParameter> lstParam = new List<SqlParameter>();
lstParam.Add(new SqlParameter("@Bdate", SqlDbType.DateTime));
lstParam.Add(new SqlParameter("@Edate", SqlDbType.DateTime));
lstParam.Add(new SqlParameter("@mark", SqlDbType.SmallInt));
lstParam.Add(new SqlParameter("@billid", SqlDbType.VarChar));
List<object> lstValues = new List<object>();
lstValues.Add(DateTime.Now);
lstValues.Add(DateTime.Now);
lstValues.Add(mark);
lstValues.Add(billid);
var tb = ExeProdurce("aa_1_asale", lstParam, lstValues);
return tb;
}
#endregion 查询数据
#region 调用存储过程
/// <summary>
/// 调用存储过程
/// </summary>
/// <param name="pname">存储过程名称</param>
/// <param name="lstParam">参数列表</param>
/// <param name="lstValues">参数值列表</param>
/// <returns></returns>
public static DataTable ExeProdurce(string pname,List<SqlParameter> lstParam, List<object> lstValues)
{
string sql = pname; //调用的存储过程名称
SqlConnection conn = new SqlConnection();
conn = new SqlConnection();
conn.ConnectionString = ConnectStrSL;
if (conn.State == ConnectionState.Closed)
{ conn.Open(); }
DataTable dt = new DataTable();//新建一个临时表存放结果
SqlCommand com1 = new SqlCommand(sql, conn);
com1.CommandType = CommandType.StoredProcedure; //因为要使用的是存储过程,所以设置执行类型为存储过程 @billcode
int idx = 0;
foreach(SqlParameter pm in lstParam)
{
com1.Parameters.Add(pm);
com1.Parameters[idx].Value = lstValues[idx];
idx++;
}
com1.ExecuteNonQuery();
SqlDataAdapter sda1 = new SqlDataAdapter(com1);
sda1.Fill(dt);
conn.Close();
return dt;
}
#endregion 调用存储过程
}