检查SqlDataReader列是否存在(扩展方法)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了检查SqlDataReader列是否存在(扩展方法)相关的知识,希望对你有一定的参考价值。

This snippet is "extension method" for IDataReader.
You can use this snippet below ;
I assume you have datareader like that
SqlDataReader dataReader = command.ExecuteReader();

if (dataReader.IsColumnExists("columnName"))
{
//do something
}


and also you should validation null value control if you work critical datas

if (dataReader.IsColumnExists("columName"))
{
if (dataReader["columName"] != DBNull.Value)
{
//do something
}
}
  1. public static bool IsColumnExists(this IDataReader dataReader, string columnName)
  2. {
  3. bool retVal = false;
  4.  
  5. try
  6. {
  7. dataReader.GetSchemaTable().DefaultView.RowFilter = string.Format("ColumnName= '{0}'", columnName);
  8. if (dataReader.GetSchemaTable().DefaultView.Count > 0)
  9. {
  10. retVal = true;
  11. }
  12. }
  13.  
  14. catch (Exception ex)
  15. {
  16.  
  17. throw;
  18. }
  19.  
  20. return retVal;
  21. }

以上是关于检查SqlDataReader列是否存在(扩展方法)的主要内容,如果未能解决你的问题,请参考以下文章

SqlDataReader将Binary列转换为bool

当获取相似数据时,使用不同方法调用不同sp,但是使用同一个方法去用IIDataReader或者SqlDataReader读取数据时需要判断column name是否存在。

SqlDataReader 检查空值的最佳方法 -sqlDataReader.IsDBNull vs DBNull.Value

检查它是不是是 sqldatareader 中的最后一条记录

检查 DF 中是不是存在列 - Java Spark

检查是不是存在多个列