Csharp/C#教程:SqlDataReader.GetString和sqlnullvalueexception分享


SqlDataReader.GetString和sqlnullvalueexception

我是C#的新手。 我正在使用System.Data.SqlClient类从数据库表执行一些select查询。 执行一些select查询时,我得到了sqlnullvalueexception。 在谷歌搜索时我发现如果数据库中的值为null,则SqlDataReader.GetString(或它的变体)将抛出sqlnullvalueexception。 这个最好的编码方法是什么?

if (!sqlDataReader.IsDBNull(n)) value = r.GetString(n); 

有更好的编码方式吗?

如果您不想重复这一点,只需创建一个辅助函数,如下所示:

 public static class DataReaderExtensions { public static string GetStringOrNull(this IDataReader reader, int ordinal) { return reader.IsDBNull(ordinal) ? null : reader.GetString(ordinal); } public static string GetStringOrNull(this IDataReader reader, string columnName) { return reader.GetStringOrNull(reader.GetOrdinal(columnName)); } } 

你可以这样打电话:

 value = reader.GetStringOrNull(n); 

你发布的代码很好。 你也可以这样做:

 value = r[n] as string; 

如果数据库中的值为null,则r[n]将返回DBNull.Value,并且强制转换为string将返回null

如果你想避免任何例外,那真的是最好的方法。 您需要确定空字段是否代表代码中的exception情况 – 如果不是则表示使用此方法。 如果确实如此,那么我建议您允许抛出exception或捕获exception并将其包装在更具意义的exception中并抛出该exception。

但要知道的主要事情是,当空字段不代表应用程序域中的exception情况时,这是从数据读取器检索值的标准方法。

这对我有用:

上述就是C#学习教程:SqlDataReader.GetString和sqlnullvalueexception分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 value = reader.GetValue(n).ToString(); 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1003916.html

(0)
上一篇 2021年12月28日
下一篇 2021年12月28日

精彩推荐