我编写了个存储过程接受参数  
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)    
请问应该怎么写。。

解决方案 »

  1.   

    很简单啊,你只需要一个arraylist就行了
    比如你可以在业务层把id都add到arraylist里面,然后把这个arraylist传到数据层,由数据层的某个函数遍历arraylist,组合成一个字符串,丢给数据访问层就是写个函数调用你写的这个存储过程
      

  2.   

    没太明白lz的意思,是不是:?
    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;
    }