asp.net執行存儲過程問題

Hroa_RoleInModule 的表結構是

Create   Table  Hroa_RoleInModule (
 RoleID 
int   NOT   NULL -- 角色ID
 ClassID  int   NOT   NULL -- 模塊類別ID
 ModuleID  int   NOT   NULL -- 模塊ID

存儲過程

CREATE   PROCEDURE  Delete_Hroa_RoleInModule (
 
@RoleID   int   =- 1 ,
 
@ModuleID   varchar ( 500 =   Null
)
AS
 
DELETE   FROM  Hroa_RoleInModule  WHERE  RoleID = @RoleID   AND  ModuleID  in  ( @ModuleID )
 
RETURN
GO




@RoleID的值是 3
@ModuleID的值是 '100003','200001','300001','300002','300003','300004'
執行後顯示

异常详细信息: System.Exception: 将 varchar 值 '100003,200001,300001,300002,300003,300004' 转换为数据类型为 int 的列时发生语法错误。

程序在這里

protected   int  Run( string  storeName,IDataParameter[] parameters)
{
objConn.Open();
string strSql="Delete_Hroa_RoleInModule";
SqlCommand strComm 
= new SqlCommand(strSql,objConn);
strComm.CommandType 
= CommandType.StoredProcedure;   

SqlParameter[] parameters 
= new SqlParameter[]
{
 
new SqlParameter("@RoleID",SqlDbType.Int),
 
new SqlParameter("@ModuleID",SqlDbType.VarChar,500)
}
;
parameters[
0].Value=roleid;
parameters[
1].Value=modulesid;

int n=(int)strComm.ExecuteNonQuery();
objConn.Close();
return n;
}




郁悶中,大家誰能告訴我原因啊,有沒有辦法解決

你可能感兴趣的:(asp.net)