SqlCeCommand 可为空的值
Posted
技术标签:
【中文标题】SqlCeCommand 可为空的值【英文标题】:SqlCeCommand nullable values 【发布时间】:2011-05-11 00:42:27 【问题描述】:我的代码:
SqlCeConnection sql = new SqlCeConnection(@"Data Source=C:\DB.sdf");
sql.Open();
cmd = new SqlCeCommand("INSERT INTO xxx(aaa) VALUES(@aaa)", sql);
String param = null; //doesn't work
//String param = "blah" //works
cmd.Parameters.AddWithValue("@aaa", param);
cmd.ExecuteNonQuery(); //(1)
sql.Close();
(1) 当param
为空时抛出异常。数据库允许列 aaa
中的值为空。如何将 null 插入到表 xxx 中?
例外:Parameterized query 'INSERT INTO xxx(aaa) VALUES(@aaa)' expects a parameter value which was not supplied.
【问题讨论】:
【参考方案1】:尝试改用DBNull.Value
:
var param = DBNull.Value;
【讨论】:
【参考方案2】:使用
var param = DBNull.Value;
null 与 DBNull 不同
【讨论】:
可以将 DBNull.Value 转换为 String 吗?以上是关于SqlCeCommand 可为空的值的主要内容,如果未能解决你的问题,请参考以下文章
为啥 C# 中的 async/await 会返回可为空的值,即使被告知不要这样做?
为啥 TargetNullValue 更新可为空的 Source