我编写了个存储过程接受参数
ALTER PROCEDURE upDeleteMsg
@newsID varchar(50)
AS
declare @sql nvarchar(500)
set @sql = 'DELETE FROM news WHERE newsID in ('+ @newsID +')'
exec (@sql)
接受参数为 ”1,2,3,4,5,6“
应该怎么写接受类,我这么写只能传过来一个数据。
public void DeleteMsg(string Msg)
请问应该怎么写。。
ALTER PROCEDURE upDeleteMsg
@newsID varchar(50)
AS
declare @sql nvarchar(500)
set @sql = 'DELETE FROM news WHERE newsID in ('+ @newsID +')'
exec (@sql)
接受参数为 ”1,2,3,4,5,6“
应该怎么写接受类,我这么写只能传过来一个数据。
public void DeleteMsg(string Msg)
请问应该怎么写。。
比如你可以在业务层把id都add到arraylist里面,然后把这个arraylist传到数据层,由数据层的某个函数遍历arraylist,组合成一个字符串,丢给数据访问层就是写个函数调用你写的这个存储过程
public int DeleteMsg(string[] Msg)
{
System.Text.StringBuilder sb = new StringBuilder();
foreach(string id in Msg)
sb.Append(id+",");
sb.Remove(sb.Length-1,1);
System.Data.OleDb.OleDbConnection cnn = new System.Data.OleDb.OleDbConnection("连接字符串");
System.Data.OleDb.OleDbCommand cm = new System.Data.OleDb.OleDbCommand();
cm.Connection = cnn;
cm.CommandText = "upDeleteMsg";
cm.CommandType = CommandType.StoredProcedure;
cm.Parameters.Add("@newsID");
cm.Parameters["@newsID"].Value = sb.ToString();
cnn.Open();
int rows = cm.ExecuteNonQuery();
cnn.Close();
sb = null;
return rows;
}