ASP.NET(C#),怎么给SQL数据库插入空值?
本帖最后由 From_TaiWan 于 2013-07-21 16:15:34 编辑
如标题
……
mycomm.Parameters.Add(new SqlParameter("@ChuXianSJ", SqlDbType.SmallDateTime));
mycomm.Parameters["@ChuXianSJ"].Value = ChuXianSJBox.Text.Trim() == "" ? null : ChuXianSJBox.Text.Trim();
……
其中:
ChuXianSJ对应的库字段类型是“时间”,且可以“空”;
ChuXianSJBox.Text.Trim() 里的是用于输入时间的文本框;
当ChuXianSJBox没有值的时候,报错“……@Z' 需要参数 '@ChuXianSJ',但未提供该参数。”
请问以上语句怎么不对,要怎么改?
------解决方案--------------------不是这么写的,改成
if(ChuXianSJBox.Text.Trim() == "")
{
mycomm.Parameters["@ChuXianSJ"].Value = DBNull.Value;
}
else
{
mycomm.Parameters["@ChuXianSJ"].Value = ChuXianSJBox.Text.Trim();
}
------解决方案-------------------- cmd.Parameters.AddWithValue("@ChuXianSJ", ChuXianSJBox.Text.Trim().Equals("") ? (object)DBNull.Value : ChuXianSJBox.Text.Trim());
------解决方案--------------------
你定义了类型,需要指定value的类型
我先前回复错误,没注意你是datetime类型
(DateTime)DBNull.Value
或者 System.Data.SqlTypes.DateTime.Null应该可以