Exception Details: System.ArgumentException: Type of value has a mismatch with column typeSource Error:
Line 40: for(int i=0;i<schemaTable.Rows.Count;i++)
Line 41: {
Line 42: myDataRow[i] = dataReader[i].ToString();
Line 43: }
Line 44: datatable.Rows.Add(myDataRow);
Source File: d:\wwwroot\uds\code\components\tool.cs Line: 42
程序如下:
public static DataTable ConvertDataReaderToDataTable(SqlDataReader dataReader)
{
DataTable datatable = new DataTable();
DataTable schemaTable = dataReader.GetSchemaTable();
//动态添加列
try
{
foreach(DataRow myRow in schemaTable.Rows)
{
DataColumn myDataColumn = new DataColumn();
myDataColumn.DataType = myRow.GetType();
myDataColumn.ColumnName = myRow[0].ToString();
datatable.Columns.Add(myDataColumn);
}
//添加数据
while(dataReader.Read())
{
DataRow myDataRow = datatable.NewRow();
for(int i=0;i<schemaTable.Rows.Count;i++)
{
myDataRow[i] = dataReader[i].ToString();
}
datatable.Rows.Add(myDataRow);
myDataRow = null;
}
schemaTable = null;
dataReader.Close();
return datatable;
}
catch(Exception ex)
{
Error.Log(ex.ToString());
throw new Exception("转换出错出错!",ex);
}
}谢谢
Line 40: for(int i=0;i<schemaTable.Rows.Count;i++)
Line 41: {
Line 42: myDataRow[i] = dataReader[i].ToString();
Line 43: }
Line 44: datatable.Rows.Add(myDataRow);
Source File: d:\wwwroot\uds\code\components\tool.cs Line: 42
程序如下:
public static DataTable ConvertDataReaderToDataTable(SqlDataReader dataReader)
{
DataTable datatable = new DataTable();
DataTable schemaTable = dataReader.GetSchemaTable();
//动态添加列
try
{
foreach(DataRow myRow in schemaTable.Rows)
{
DataColumn myDataColumn = new DataColumn();
myDataColumn.DataType = myRow.GetType();
myDataColumn.ColumnName = myRow[0].ToString();
datatable.Columns.Add(myDataColumn);
}
//添加数据
while(dataReader.Read())
{
DataRow myDataRow = datatable.NewRow();
for(int i=0;i<schemaTable.Rows.Count;i++)
{
myDataRow[i] = dataReader[i].ToString();
}
datatable.Rows.Add(myDataRow);
myDataRow = null;
}
schemaTable = null;
dataReader.Close();
return datatable;
}
catch(Exception ex)
{
Error.Log(ex.ToString());
throw new Exception("转换出错出错!",ex);
}
}谢谢
只是增加一个新行呀,myDataRow[i]又是什么意思呢??