Rém*_*émi 21 c# datareader datarow
好的,我想提取DataRow一个DataReader.我一直在寻找相当长的一段时间,看起来没有一种简单的方法可以做到这一点.
我理解a DataReader更多是行的集合,但它当时只读取一行.
所以我的问题是:有没有办法提取DataRow出当前的一行DataReader?
Tim*_*ter 26
有没有办法从DataReader的当前行中提取DataRow?
不,至少没有简单的方法.每个DataRow都属于一个表.您不能将该属性留空,甚至无法更改表(不使用ImportRow).
但是如果你需要DataRows,为什么不首先填写DataTable?
DataTable table = new DataTable();
using(var con = new SqlConnection("...."))
using(var da = new SqlDataAdapter("SELECT ... WHERE...", con))
da.Fill(table);
// now you have the row(s)
Run Code Online (Sandbox Code Playgroud)
如果你真的需要从中获取行,DataReader你可以reader.GetSchemaTable用来获取有关列的所有信息:
if (reader.HasRows)
{
DataTable schemaTable = reader.GetSchemaTable();
DataTable data = new DataTable();
foreach (DataRow row in schemaTable.Rows)
{
string colName = row.Field<string>("ColumnName");
Type t = row.Field<Type>("DataType");
data.Columns.Add(colName, t);
}
while (reader.Read())
{
var newRow = data.Rows.Add();
foreach (DataColumn col in data.Columns)
{
newRow[col.ColumnName] = reader[col.ColumnName];
}
}
}
Run Code Online (Sandbox Code Playgroud)
但这并不是真正有效的.
| 归档时间: |
|
| 查看次数: |
37915 次 |
| 最近记录: |