插入空值的时候,不要插入null,而插入DBNull.Value这个常量这个常量表示数据库的空值你的代码改成:
string sql;
sql = "insert into Example (ProductID, ProductName, Description) values (@ProductID, @ProductName, @Description)";string ProductID = "001";
string ProductName = "Hardisk";
object Description = DBNull.Value;     //注意,我想向Description列中插入一个null值SqlCommand cmd = new SqlCommand(sql, cn);cmd.Parameters.Add ("@ProductID", ProductID);
cmd.Parameters.Add ("@ProductName", ProductName);
cmd.Parameters.Add ("@Description", Description);cn.Open();
ExecuteNonQuery();一般情况,可以在插入数据库的时候判断一下,把null换成DBNull.Value

解决方案 »

  1.   

    你是要我这样?if(Description == null)
    {
        cmd.Parameters.Add ("@Description", DBNull.Value);
    }
    else
    {
        cmd.Parameters.Add ("@Description", Description);
    }
      

  2.   

    你可以写成:
    cmd.Parameters.Add ("@Description", Description==null?DBNull.Value:Description);
      

  3.   

    using System.Data.SqlTypes;
    if(Description==null)
         cmd.Parameters.Add ("@Description", SqlString.Null);
      

  4.   

    to timmy3310(tim) :
    cmd.Parameters.Add ("@Description", Description==null?DBNull.Value:Description);
    这样不行,因为系统无法判断返回值的类型