插入空值的时候,不要插入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
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
{
cmd.Parameters.Add ("@Description", DBNull.Value);
}
else
{
cmd.Parameters.Add ("@Description", Description);
}
cmd.Parameters.Add ("@Description", Description==null?DBNull.Value:Description);
if(Description==null)
cmd.Parameters.Add ("@Description", SqlString.Null);
cmd.Parameters.Add ("@Description", Description==null?DBNull.Value:Description);
这样不行,因为系统无法判断返回值的类型