在C#中对数据,添加修改,用存储过程怎么实现的,我不太懂
比如像下面的代码,我一点不懂
public string AddStuInfo(string stuid, string stuname, string stusex, string studay, string studepart, string stuclass, string stuidcard, string stuaddr, string stutel, string stuextfield)
{
SqlParameter[] parameters={
new SqlParameter("@Id",SqlDbType.Int,4),
new SqlParameter("@StudentID",SqlDbType.NVarChar,50),
new SqlParameter("@StudentName",SqlDbType.NVarChar,50),
new SqlParameter("@StudentSex",SqlDbType.NVarChar,50),
new SqlParameter("@StudentDate",SqlDbType.NVarChar,50),
new SqlParameter("@DepartName",SqlDbType.NVarChar,50),
new SqlParameter("@ClassName",SqlDbType.NVarChar,50),
new SqlParameter("@StudentIDCard",SqlDbType.NVarChar,50),
new SqlParameter("@Address",SqlDbType.NVarChar,50),
new SqlParameter("@StudentTel",SqlDbType.NVarChar,50),
new SqlParameter("@ExtendField",SqlDbType.NVarChar,50)};
parameters[0].Direction=ParameterDirection.Output;
parameters[1].Value=stuid;
parameters[2].Value=stuname;
parameters[3].Value=stusex;
parameters[4].Value=studay;
parameters[5].Value=studepart;
parameters[6].Value=stuclass;
parameters[7].Value=stuidcard;
parameters[8].Value=stuaddr;
parameters[9].Value=stutel;
parameters[10].Value=stuextfield;
return DBHelper.ExecuteCommand("StudentInfoADD",parameters).ToString();
}
public static int ExecuteCommand(string stor, SqlParameter[] paras)
{
SqlCommand cmd = new SqlCommand(stor, Connection);
cmd.CommandType = CommandType.StoredProcedure;
foreach (SqlParameter para in paras)
{
if (para != null)
{
if ((para.Direction == ParameterDirection.InputOutput || para.Direction == ParameterDirection.Input) && (para.Value == null))
{
para.Value = DBNull.Value;
}
cmd.Parameters.Add(para);
}
}
return cmd.ExecuteNonQuery();
}
比如像下面的代码,我一点不懂
public string AddStuInfo(string stuid, string stuname, string stusex, string studay, string studepart, string stuclass, string stuidcard, string stuaddr, string stutel, string stuextfield)
{
SqlParameter[] parameters={
new SqlParameter("@Id",SqlDbType.Int,4),
new SqlParameter("@StudentID",SqlDbType.NVarChar,50),
new SqlParameter("@StudentName",SqlDbType.NVarChar,50),
new SqlParameter("@StudentSex",SqlDbType.NVarChar,50),
new SqlParameter("@StudentDate",SqlDbType.NVarChar,50),
new SqlParameter("@DepartName",SqlDbType.NVarChar,50),
new SqlParameter("@ClassName",SqlDbType.NVarChar,50),
new SqlParameter("@StudentIDCard",SqlDbType.NVarChar,50),
new SqlParameter("@Address",SqlDbType.NVarChar,50),
new SqlParameter("@StudentTel",SqlDbType.NVarChar,50),
new SqlParameter("@ExtendField",SqlDbType.NVarChar,50)};
parameters[0].Direction=ParameterDirection.Output;
parameters[1].Value=stuid;
parameters[2].Value=stuname;
parameters[3].Value=stusex;
parameters[4].Value=studay;
parameters[5].Value=studepart;
parameters[6].Value=stuclass;
parameters[7].Value=stuidcard;
parameters[8].Value=stuaddr;
parameters[9].Value=stutel;
parameters[10].Value=stuextfield;
return DBHelper.ExecuteCommand("StudentInfoADD",parameters).ToString();
}
public static int ExecuteCommand(string stor, SqlParameter[] paras)
{
SqlCommand cmd = new SqlCommand(stor, Connection);
cmd.CommandType = CommandType.StoredProcedure;
foreach (SqlParameter para in paras)
{
if (para != null)
{
if ((para.Direction == ParameterDirection.InputOutput || para.Direction == ParameterDirection.Input) && (para.Value == null))
{
para.Value = DBNull.Value;
}
cmd.Parameters.Add(para);
}
}
return cmd.ExecuteNonQuery();
}
public string AddStuInfo(string stuid, string stuname, string stusex, string studay, string studepart, string stuclass, string stuidcard, string stuaddr, string stutel, string stuextfield)
{
SqlParameter[] parameters={
new SqlParameter("@Id",SqlDbType.Int,4),
new SqlParameter("@StudentID",SqlDbType.NVarChar,50),
new SqlParameter("@StudentName",SqlDbType.NVarChar,50),
new SqlParameter("@StudentSex",SqlDbType.NVarChar,50),
new SqlParameter("@StudentDate",SqlDbType.NVarChar,50),
new SqlParameter("@DepartName",SqlDbType.NVarChar,50),
new SqlParameter("@ClassName",SqlDbType.NVarChar,50),
new SqlParameter("@StudentIDCard",SqlDbType.NVarChar,50),
new SqlParameter("@Address",SqlDbType.NVarChar,50),
new SqlParameter("@StudentTel",SqlDbType.NVarChar,50),
new SqlParameter("@ExtendField",SqlDbType.NVarChar,50)};//在代码中声明SQL存储过程参数
parameters[0].Direction=ParameterDirection.Output;
parameters[1].Value=stuid;
parameters[2].Value=stuname;
parameters[3].Value=stusex;
parameters[4].Value=studay;
parameters[5].Value=studepart;
parameters[6].Value=stuclass;
parameters[7].Value=stuidcard;
parameters[8].Value=stuaddr;
parameters[9].Value=stutel;
parameters[10].Value=stuextfield;//上面的是给存储过程参数赋值
return DBHelper.ExecuteCommand("StudentInfoADD",parameters).ToString();//执行StudentInfoADD这个存储过程,方法第二个参数是给StudentInfoADD存储过程的参数
}
public static int ExecuteCommand(string stor, SqlParameter[] paras)
{
SqlCommand cmd = new SqlCommand(stor, Connection);
cmd.CommandType = CommandType.StoredProcedure;//表面Command的类型为存储过程 对应的Text的就是直接执行SQL语句
foreach (SqlParameter para in paras)
{
if (para != null)
{
if ((para.Direction == ParameterDirection.InputOutput || para.Direction == ParameterDirection.Input) && (para.Value == null))//如果是输入参数且参数为null,则将参数值设置为DBNull 就是SQL中代码NULL的值
{
para.Value = DBNull.Value;
}
cmd.Parameters.Add(para);
}
}
return cmd.ExecuteNonQuery();//执行非查询形式的SQL语句
}
这些参数必须用SqlParameter类来封装进行传值操作
然后交给SqlCommand类进行执行操作。