首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用相同的代码从DataRow或DataReader读取?

要使用相同的代码从DataRow或DataReader读取,您可以使用泛型方法和接口。首先,创建一个接口,该接口定义了从DataRow或DataReader读取数据的方法。然后,为DataRow和DataReader创建实现该接口的泛型类。最后,使用泛型方法处理这两种类型的数据。

  1. 定义接口:public interface IDataReader<T> { T GetValue(string columnName); }
  2. 为DataRow和DataReader创建实现接口的类:public class DataRowReader<T> : IDataReader<T> { private readonly DataRow _dataRow; public DataRowReader(DataRow dataRow) { _dataRow = dataRow; } public T GetValue(string columnName) { return _dataRow.Field<T>(columnName); } } public class DataReaderReader<T> : IDataReader<T> { private readonly IDataReader _dataReader; public DataReaderReader(IDataReader dataReader) { _dataReader = dataReader; } public T GetValue(string columnName) { return _dataReader.GetValue<T>(columnName); } }
  3. 使用泛型方法处理DataRow和DataReader:public T ReadValue<T>(IDataReader<T> dataReader, string columnName) { return dataReader.GetValue(columnName); }

现在,您可以使用相同的代码从DataRow或DataReader读取数据,如下所示:

代码语言:csharp
复制
DataTable dataTable = GetDataTable();
DataRow dataRow = dataTable.Rows[0];
IDataReader<string> dataRowReader = new DataRowReader<string>(dataRow);
string valueFromDataRow = ReadValue(dataRowReader, "ColumnName");

using (IDataReader dataReader = GetDataReader())
{
    IDataReader<string> dataReaderReader = new DataReaderReader<string>(dataReader);
    string valueFromDataReader = ReadValue(dataReaderReader, "ColumnName");
}

这种方法允许您使用相同的代码从DataRow或DataReader读取数据,同时保持代码的可读性和可维护性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券