如何在 C# 的数字字段中插入“NULL”
本文关键字:插入 NULL 字段 数字 | 更新日期: 2023-09-27 18:36:33
>我正在从数据行插入一个值以访问数据库,如果行[1]值为空,则会抛出错误 条件表达式中的数据类型不匹配,如果值在那里,它会正确插入。 我在这里缺少什么。 在"访问"中,列 1 的类型为"数字"。
string SNumber = row[1].ToString();
if (SNumber.ToString() != null)
{
if (SNumber .ToString() != "")
{
SNumber = row[1].ToString();
}
else
{
SNumber = "NULL";
SNumber = DBNull.Value.ToString();
}
}
insert into table1 (Column1) values (SNumber);
行值可能为空或为空。因此,仅检查 null 是不够的,您必须检查两个 null,然后对于数字数据类型不允许空刺为空。
也许你可以使用string.IsNullOrEmpty
试试这个
if (!string.IsNullOrEmpty(row[1].ToString())
{
// do your stuff
}
您可以将所有代码替换为三元运算符:
string query = "insert into table1 (Column1) values (" +
((row[1] != null && row[1].ToString() != String.Empty)
? row[1].ToString()
: null)
+ ") etc... etc...";
如果我正确理解你想要什么。 如果行 [1] 为空或空,则插入空。 否则插入行 [1] 的值。
好的,我想Column1
是一个数值字段。然后,如果您尝试插入字符串,它将抛出错误,因为
SNumber = "NULL";
是一个字符串。如果是:
SNumber = NULL;
那么这将是一个空值。但也许最好使用 Nullable int - Nullable type MSDN
int? num = null;
问号点,它也可以保存一个NULL
值。希望这有帮助。
我想,如果 row[1] 为空,那么您也会收到异常。 如果 row[1] 可以返回一个可为空的数据类型(在您的问题中不清楚),那么也许您应该替换:
string SNumber = row[1].ToString();
跟
Number SNumber = row[1];
然后将外部 if 语句替换为:
if (!string.IsNullOrWhiteSpace(SNumber.ToString())) {
[..]
}