jth*_*h41 10 c# sql string null parsing
_callReportCode = reader["Call Report Code"].ToString();
Run Code Online (Sandbox Code Playgroud)
我试图处理我调用ToString的对象为NULL的可能性.我将使用上面的语句与几个变量,我不想为每个变量做一个单独的try/catch ...什么是对字符串进行空检查的最佳方法.
其他数据类型我一直这样做:
int.TryParse(reader["Account Number"].ToString(), out _accountNumber);
Run Code Online (Sandbox Code Playgroud)
在这段代码中,"reader"指的是一个SqlDataReader,但对于这个问题并不重要.
Bob*_*son 31
使用null-coalescing运算符:??
callReportCode = (reader["Call Report Code"] ?? "").ToString();
Run Code Online (Sandbox Code Playgroud)
如果在你的领域中的数据DBNull.Value(而不是null),这将仍然工作,因为DBNull.Value没有null,所以??将不被使用,并且DBNull.Value.ToString()是"",这是你想要的东西.
And*_*lil 11
Convert.ToString(reader["Call Report Code"]);
Run Code Online (Sandbox Code Playgroud)
string.Empty如果值为null ,它将返回.
资料来源:http://msdn.microsoft.com/en-us/library/astxcyeh.aspx
更新:它也适用DBNull,我刚刚验证.
更新2:我决定在这里进行更完整的测试,以确保:
DBNull dbNull = null;
DBNull dbNullEmpty = DBNull.Value;
string stringNull = null;
string stringEmpty = string.Empty;
var outcome1 = Convert.ToString(dbNull);//Empty string
var outcome2 = Convert.ToString(dbNullEmpty);//Empty string
var outcome3 = Convert.ToString(stringNull);//NULL
var outcome4 = Convert.ToString(stringEmpty);//Empty string
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22864 次 |
| 最近记录: |