我具有使用idataReader填充对象的函数:
private void FillDataItem(IDataReader datareader)
{
this.CompanyCode = datareader.GetString(datareader.GetOrdinal("COMPANY"));
this.Name = datareader.GetString(datareader.GetOrdinal("NAME"));
//...and so on
}
使用SQLDATAREADER根据SQL查询的结果填充对象字段时非常有用。我的几乎所有课程都有这种" FillDaitem",它吸引了Idatareader。使数据库对象变得非常容易。
但是,现在我想做同样的事情,但是使用数据源的数据源与数据源一样。情况是,与来自SQL查询完全相同的格式(相同列)的自定义构建数据表呈现,但并非来自任何外部数据源。我想循环遍历数据排的行,并在每一行中以与上述filldataitem()方法相同的方式填充对象。
当然,我可以创建一个将数据称为参数的新方法:
private void FillDataItem(DataRow datarow)
{
this.CompanyCode = datarow["COMPANY"].ToString();
this.Name = datarow["NAME"].ToString();
//...and so on
}
,但这与Idatareader版本非常相似,我真的很想知道我如何以一种方法来实现目标,以便不需要重复此类代码。考虑到我有很多字段,FillDaitem方法大约是200行。将其复制/粘贴到DataRow版本中似乎很浪费且难以维护。
数据表上有一个createAtareader方法。您可以将其传递到现有代码。
http://msdn.microsoft.com/en-us/library/system.data.data.datable.createedeDataReader.aspx