如何在为数据表分配数据行时处理空值

时间:2012-01-24 18:58:26

标签: c# null

所以我有一个制表符分隔文件,我需要通过sqlbulkinsert插入。我已经编写了所有代码并正常工作,但是当我达到一个没有输入值的整数或小数的值时,我的代码断开,因为赋值不正确(null到十进制值)...我怎么能处理这个?

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

谢谢!

编辑:我确实知道我可以在赋值之前测试null的值,但是如果有其他方法可以使用if检查,那么我更愿意使用if检查。

使用三元运算符结束。

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

2 个答案:

答案 0 :(得分:1)

在作业前做一个简单的检查:

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

将varT更改为您要检查的值的名称。 你还需要告诉我们什么是null,什么不是很难说你的问题的内容。 splitString [IndexValue]是null还是datarow?

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

return varT != null ? varT : 1.0;

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

答案 1 :(得分:0)

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

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