本文主要是介绍C# DataReader To DataSet(多用于ORM框架底层实现),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
[SecurityCritical]
[SecuritySafeCritical]
public DataSet ToDataSet(DbDataReader dataReader)
{
if (dataReader == null)
{
return null;
}
DataSet dataSet = new DataSet();
if (!dataReader.HasRows)
{
dataSet.Tables.Add(new DataTable());
return dataSet;
}
for (; ; )
{
DataTable dataTable = new DataTable();
try
{
int fieldCount = dataReader.VisibleFieldCount;
for (int i = 0; i < fieldCount; i++)
{
string fieldName = dataReader.GetName(i);
Type fieldType = dataReader.GetFieldType(i);
dataTable.Columns.Add(new DataColumn(fieldName, fieldType));
}
while (dataReader.Read())
{
object[] rowValues = new object[fieldCount];
dataReader.GetValues(rowValues);
dataTable.Rows.Add(rowValues);
}
dataSet.Tables.Add(dataTable);
if (!dataReader.NextResult())
{
return dataSet;
}
}
catch (Exception)
{
foreach (DataTable p in dataSet.Tables)
{
try
{
p?.Dispose();
}
catch (Exception) { }
}
try
{
dataTable.Dispose();
}
catch (Exception) { }
try
{
dataSet.Dispose();
}
catch (Exception) { }
return null;
}
}
}
这篇关于C# DataReader To DataSet(多用于ORM框架底层实现)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!