一般使用是这样的        command.Parameters.Add(“@type_id", SqlDbType.Char);
        command.Parameters[“@type_id"].Value = value;这是未包含带有 ParameterName“@type_id”的 SqlParameter的情况但现在我想先判断command.Parameters[“@type_id"]是否已经有
如果有的话就改变他的值否则就按上面那样我这样        if (null != command.Parameters[p].Value)
        {
            command.Parameters.Add(p, SqlDbType.Int);
            command.Parameters[p].Value = value;
        }
        else
        {
            command.Parameters[p].Value = value;
        }但出错
此 SqlParameterCollection 中未包含带有 ParameterName“@type_id”的 SqlParameter。 应该怎么做呢

解决方案 »

  1.   


    if(null == command.Parameters[p]) 

    command.Parameters.Add(p,   SqlDbType.Int); 
    command.Parameters[p].Value   =   value; 

    else 

    command.Parameters[p].Value   =   value; 
      

  2.   

    这样来作:SqlCommand command = new SqlCommand();
    if (-1 != command.Parameters.IndexOf("@a"))
    {
    command.Parameters["@a"].Value = 2;
    }
    else
    {
    command.Parameters.Add("@a", SqlDbType.Int);
    command.Parameters["@a"].Value = 1;
    }
      

  3.   

    换成楼主的代码是这样的:SqlCommand command = new SqlCommand();
    if (-1 != command.Parameters.IndexOf(p))
    {
        command.Parameters[p].Value = value;
    }
    else
    {
        command.Parameters.Add(p, SqlDbType.Int);
        command.Parameters[p].Value = value;
    }