小弟刚接触存储过程,在看别人调用存储过程时,小有那么一段代码有问题!! 那位大侠指点哈!
command.Parameters.Add(new SqlParameter("ReturnValue",
SqlDbType.Int, 4, ParameterDirection.ReturnValue,
false, 0, 0, string.Empty, DataRowVersion.Default, null)); 啥意思????
还有就是这里具体取得是?????
command.Parameters["ReturnValue"].Value
command.Parameters.Add(new SqlParameter("ReturnValue",
SqlDbType.Int, 4, ParameterDirection.ReturnValue,
false, 0, 0, string.Empty, DataRowVersion.Default, null)); 啥意思????
还有就是这里具体取得是?????
command.Parameters["ReturnValue"].Value
初学先了解参数的概念,声明的时候 申明参数名和类型,赋值即可。。 new SqlParameter("参数变量名",赋值),这样写是最简单的。
SqlConnection myConn1 = new SqlConnection(sqlConn);
myConn1.Open(); //创建SqlCommand对象
SqlCommand cmd = new SqlCommand("sp_upate_all_dept_id", myConn1);//sp_upate_all_dept_id为存储过程名称
cmd.CommandType = CommandType.StoredProcedure; //添加参数
SqlParameter old_dept_id = cmd.Parameters.Add("@old_dept_id", SqlDbType.Int);
SqlParameter new_dept_id = cmd.Parameters.Add("@new_dept_id", SqlDbType.Int);
SqlParameter us_id = cmd.Parameters.Add("@us_id", SqlDbType.Int);
SqlParameter returnvalue = cmd.Parameters.Add("@returnvalue", SqlDbType.Int); //指定参数是只可输入(Input)、输出(Output)还是返回值(ReturnValue)
old_dept_id.Direction = ParameterDirection.Input;
new_dept_id.Direction = ParameterDirection.Input;
us_id.Direction = ParameterDirection.Input;
returnvalue.Direction = ParameterDirection.ReturnValue; //为传递给存储过程的参数赋值
old_dept_id.Value = Convert.ToInt16(o_dept_id);
new_dept_id.Value = Convert.ToInt16(dept_id);
us_id.Value = Convert.ToInt16(id); //执行SQL存储过程
cmd.ExecuteNonQuery(); //得到并判断返回值
if ((int)returnvalue.Value == 1)
{
Response.Write("<script>javascript:alert('系统错误,请联系管理员!');window.parent.location.href=('xxx.aspx');</script>");
return;
}
SqlParameter[] parameters = {
new SqlParameter("@id", SqlDbType.Int,4),
new SqlParameter("@typeId", SqlDbType.Int,4),
new SqlParameter("@title", SqlDbType.VarChar,200),
new SqlParameter("@content", SqlDbType.Text),
new SqlParameter("@imagePaht", SqlDbType.VarChar,100),
new SqlParameter("@htmlSource", SqlDbType.Text),
new SqlParameter("@setDate", SqlDbType.DateTime),
new SqlParameter("@userId", SqlDbType.Int,4),
new SqlParameter("@files", SqlDbType.VarChar,500),
new SqlParameter("@bum_bz",SqlDbType.Int,4),
new SqlParameter("@filename",SqlDbType.VarChar,500),
new SqlParameter("@readUser",SqlDbType.VarChar,500)};
parameters[0].Direction = ParameterDirection.Output;
parameters[1].Value = model.TypeId;
parameters[2].Value = model.Title;
parameters[3].Value = model.Content;
parameters[4].Value = model.ImagePaht;
parameters[5].Value = model.HtmlSource;
parameters[6].Value = model.SetDate;
parameters[7].Value = model.UserId;
parameters[8].Value = model.Files;
parameters[9].Value = model.Bum_bz;
parameters[10].Value = model.Filename;
parameters[11].Value = model.ReadUser;
//添加参数
SqlParameter old_dept_id = cmd.Parameters.Add("@old_dept_id", SqlDbType.Int);
SqlParameter new_dept_id = cmd.Parameters.Add("@new_dept_id", SqlDbType.Int);
SqlParameter us_id = cmd.Parameters.Add("@us_id", SqlDbType.Int);
SqlParameter returnvalue = cmd.Parameters.Add("@returnvalue", SqlDbType.Int); @returnvalue是创建存储过程中定义的参数么???