设计器必须创建类型“System.Data.Common.DbDataAdapter”的实例,但该类型已声明为抽象,因此设计器无法创建该类型的实例。
隐藏 在 System.ComponentModel.Design.Serialization.CodeDomSerializerBase.Error(IDesignerSerializationManager manager, String exceptionText, String helpLink)
在 System.ComponentModel.Design.Serialization.TypeCodeDomSerializer.Deserialize(IDesignerSerializationManager manager, CodeTypeDeclaration declaration)
在 System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager manager)
在 Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager)
在 System.ComponentModel.Design.Serialization.BasicDesignerLoader.BeginLoad(IDesignerLoaderHost host)
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.Common;namespace Components
{
class DataReaderAdapter:DbDataAdapter
{
public int FillFromReader(DataTable dataTable, IDataReader dataReader)
{
return Fill(dataTable, dataReader);
} protected override RowUpdatedEventArgs CreateRowUpdatedEvent(DataRow dataRow, IDbCommand command, StatementType statementType, DataTableMapping tableMapping)
{
return null;
} protected override RowUpdatingEventArgs CreateRowUpdatingEvent(DataRow dataRow, IDbCommand command, StatementType statementType, DataTableMapping tableMapping)
{
return null;
} protected override void OnRowUpdated(RowUpdatedEventArgs value)
{
}
protected override void OnRowUpdating(RowUpdatingEventArgs value)
{
}
}
}#region 将DataReader 转为 DataTable
/// <summary>
/// 将DataReader 转为 DataTable
/// </summary>
/// <param name="DataReader">DataReader</param>
public static DataTable ConvertDataReaderToDataTable(SqlDataReader dataReader)
{
DataTable datatable = new DataTable();
try
{
DataTable schemaTable = dataReader.GetSchemaTable();
//int bun=schemaTable.Rows.Count;
//DataColumn myDataColumn = new DataColumn();
//for(int bui=0;bui<bun;bui++)
//{ //myDataColumn.DataType = schemaTable.Rows[0].GetType();
//myRow.GetType();
//myDataColumn.ColumnName = schemaTable.Rows[0].ToString();
//}
//datatable.Columns.Add(myDataColumn);
if (schemaTable != null)
{
foreach (DataRow myRow in schemaTable.Rows)
{
DataColumn myDataColumn = new DataColumn();
myDataColumn.DataType = myRow.GetType();
myDataColumn.ColumnName = myRow[0].ToString();
datatable.Columns.Add(myDataColumn);
} }
DataReader dra = new DataReader();
dra.FillFromReader(datatable, dataReader);
dra = null;
dataReader.Close(); }
catch (Exception ex)
{
Error.Log(ex.ToString());
throw new Exception("转换出错!", ex);
}
return datatable;
} #endregion
请问怎么解决啊?
隐藏 在 System.ComponentModel.Design.Serialization.CodeDomSerializerBase.Error(IDesignerSerializationManager manager, String exceptionText, String helpLink)
在 System.ComponentModel.Design.Serialization.TypeCodeDomSerializer.Deserialize(IDesignerSerializationManager manager, CodeTypeDeclaration declaration)
在 System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager manager)
在 Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager)
在 System.ComponentModel.Design.Serialization.BasicDesignerLoader.BeginLoad(IDesignerLoaderHost host)
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.Common;namespace Components
{
class DataReaderAdapter:DbDataAdapter
{
public int FillFromReader(DataTable dataTable, IDataReader dataReader)
{
return Fill(dataTable, dataReader);
} protected override RowUpdatedEventArgs CreateRowUpdatedEvent(DataRow dataRow, IDbCommand command, StatementType statementType, DataTableMapping tableMapping)
{
return null;
} protected override RowUpdatingEventArgs CreateRowUpdatingEvent(DataRow dataRow, IDbCommand command, StatementType statementType, DataTableMapping tableMapping)
{
return null;
} protected override void OnRowUpdated(RowUpdatedEventArgs value)
{
}
protected override void OnRowUpdating(RowUpdatingEventArgs value)
{
}
}
}#region 将DataReader 转为 DataTable
/// <summary>
/// 将DataReader 转为 DataTable
/// </summary>
/// <param name="DataReader">DataReader</param>
public static DataTable ConvertDataReaderToDataTable(SqlDataReader dataReader)
{
DataTable datatable = new DataTable();
try
{
DataTable schemaTable = dataReader.GetSchemaTable();
//int bun=schemaTable.Rows.Count;
//DataColumn myDataColumn = new DataColumn();
//for(int bui=0;bui<bun;bui++)
//{ //myDataColumn.DataType = schemaTable.Rows[0].GetType();
//myRow.GetType();
//myDataColumn.ColumnName = schemaTable.Rows[0].ToString();
//}
//datatable.Columns.Add(myDataColumn);
if (schemaTable != null)
{
foreach (DataRow myRow in schemaTable.Rows)
{
DataColumn myDataColumn = new DataColumn();
myDataColumn.DataType = myRow.GetType();
myDataColumn.ColumnName = myRow[0].ToString();
datatable.Columns.Add(myDataColumn);
} }
DataReader dra = new DataReader();
dra.FillFromReader(datatable, dataReader);
dra = null;
dataReader.Close(); }
catch (Exception ex)
{
Error.Log(ex.ToString());
throw new Exception("转换出错!", ex);
}
return datatable;
} #endregion
请问怎么解决啊?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货