我有一个表,其中有一些日期时间类型列.我使用存储过程将值插入表中.在存储过程中,我有变量接受null以插入表中.我的问题是当我尝试将空值插入到我的表的datetime列时,它会抛出错误.我的代码是.
System.Data.SqlTypes.SqlDateTime getDate;
//set DateTime null
getDate = SqlDateTime.Null;
if (InsertDate.Text == "")
{
cmd1.Parameters["@InsertDate"].Value = getDate;
}
else
{
cmd1.Parameters["@InsertDate"].Value = InsertDate.Text;
}
Run Code Online (Sandbox Code Playgroud)
Dr *_*izo 12
cmd1.Parameters["@InsertDate"].Value = getDate ?? DBNull.Value;
Run Code Online (Sandbox Code Playgroud)
关键是DBNull.Value.我想你有一个可以为空的DateTime变量,即DateTime? someVariable.您可以将其测试为null以及是否使用DBNull.Value(如上所示).
小智 7
if (//some condition)
{
cmd.Parameters.AddWithValue("@dateofBirth", txtdob.text);
}
else
{
cmd.Parameters.AddWithValue("@dateofBirth", DBNull.Value);
}
Run Code Online (Sandbox Code Playgroud)
小智 5
要将空值传递给数据库,您可以使用 DBNull.Value。请尝试这个
if (string.IsNullOrWhiteSpace(InsertDate.Text))
{
cmd1.Parameters["@InsertDate"].Value =DBNull.Value;
}
else
{
cmd1.Parameters["@InsertDate"].Value = InsertDate.Text;
}
Run Code Online (Sandbox Code Playgroud)
在存储过程中执行如下操作:
insert into table(date)
values(case when @InsertDate ='' then
null
else
@insertDate
end)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
62332 次 |
| 最近记录: |