如何处理数据行赋值时的空值';s表示数据表

本文关键字:空值 数据表 表示 赋值 何处理 处理 数据 | 更新日期: 2023-09-27 18:21:30

所以我有一个以制表符分隔的文件,需要通过sqlbulksert插入。我所有的代码都写得很好,工作也很正常,但当我到达一个值时,它被分配了一个整数或十进制,而没有输入值,我的代码就会中断,因为分配不正确(从null到十进制值)。。。我该如何处理?

dataRow["variableName"] = splitString[IndexValue]; // decimal coming in blank because this column doesn't have a decimal assigned (and not required)

谢谢!

编辑:我知道我可以在赋值之前测试null值,但如果有其他方法可以强制转换,我更喜欢不使用if检查。

最后使用了三元运算符。

dataRow["variableName"] = (String.IsNullOrEmpty(splitString[IndexValue])) ? Convert.ToInt32(splitString) : 0;

如何处理数据行赋值时的空值';s表示数据表

在分配之前做一个简单的检查:

if (varT != null)
 //perform assignment
else

将varT更改为要检查的值的名称。此外,你需要告诉我们什么是无效的,什么不是。你的问题内容很难分辨。splitString[IndexValue]是null还是数据行?

根据您的评论,您可以使用条件运算符:

return varT != null ? varT : 1.0;

或者,正如其他人所提到的,您可以使用??运算符http://msdn.microsoft.com/en-us/library/ms173224.aspx

您可以使用以下代码来避免此问题:

if (splitString[IndexValue] != null)
  dataRow["variableName"] = splitString[IndexValue];