类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
CREATE PROCEDURE User_leave
/*在职(离职)用户*/
@User_INTs varchar(500), /*被复职的员工ID集合*/
@User_leave bit /*在离职标志*/
AS
EXEC (UPDATE Th_User SET User_leave =@User_leave WHERE User_INT IN ( + @User_INTs + ))
GO
执行该存储过程的代码如下:
public bool User_leave(string User_INTs,int User_leave)
{
//调用存储过程 User_leave 参数为:用户登录ID和在职标志
string my_User_leave = "User_leave "+User_INTs+","+User_leave+"";
if (ConnectDB(strDS,strDB,strUser,strPwd) == true)//myConnection.Open()
{
SqlCommand myCommand = new SqlCommand(my_User_leave,myConnection);
try
{
myCommand.ExecuteNonQuery();
myConnection.Close();
return true;
}//try
catch (SqlException myException)
{
SqlErrorCollection myErrors = myException.Errors;
for (int i=0; i < myErrors.Count; i++)
{
myErrorString = "Index #" + i + "\n" +
"Error: " + myErrors[i].ToString() + "\n";
}
return false;
}//catch
}
else
{
return false;
}
}
为什么上面的代码执行不了存储过程?
网友回答:
public bool User_leave(string User_INTs,int User_leave)
{
if (ConnectDB(strDS,strDB,strUser,strPwd) == true)//myConnection.Open()
{
SqlCommand myCommand = new SqlCommand();
SqlCommand myCommand=new SqlCommand();
myCommand.Connection=myConnection;
myCommand.CommandText="User_leave";
myCommand.CommandType=CommandType.StoredProcedure ;
myCommand.Parameters.Add("@User_INTs",User_INTs);
myCommand.Parameters.Add("@User_leave",User_leave);
try
{
myCommand.ExecuteNonQuery();
//...
}
}