另一个 SqlParameterCollection 已包含带有 ParameterName“@user_name”的 SqlParameter说得很清楚了啊

解决方案 »

  1.   

    问题是comm的Parameters集合是空的啊,第一次add就出错了
      

  2.   

    GetCommand()函数:
    private static IDbCommand GetCommand()
    {
    IDbCommand comm;
    if(BbsConfiguration.SQLProvider == "1")
    {
    comm = new SqlCommand();
    }
    else
    {
    comm = new OleDbCommand();
    } return comm;
    }
      

  3.   

    static 已包含带有 ParameterName“@user_name”的SqlParameter吧
      

  4.   

    if(parameters != null && parameters.Count > 0)
       {
        for(int i = 0;i < parameters.Count;i++)
         comm.Parameters.Add(parameters[i]); //这里出错了
       }问题是comm的Parameters集合是空的啊,第一次add就出错了你看看代码comm的Parameters集合怎么会是空的?!!!!!parameters != null && parameters.Count > 0
    就是错在这里!!!
      

  5.   

    非静态的一样的问题
    parameters是传进来的参数,不是comm的Parameters集合
      

  6.   

    晕,是不是因为这样comm.Parameters.Add(parameters[i]);
    parameters集合里的每一个parameter对象都是属于parameters集合的,所以不能添加到comm的Parameters集合里要新创建一个副本才能comm.Parameters.Add();