data . load (reader)错误“Table TableName不属于这个数据集”
本文关键字:不属于 TableName 数据集 Table load reader 错误 data | 更新日期: 2023-09-27 18:05:56
我正在尝试使用system.data.common.dbcommand.填充数据集(不止一个数据库),但不成功。我得到错误"表TableName不属于这个数据集。"
注意:TableName是数据表的名称。这是我的代码,请指导和帮助我。
dbCommand = DBHelper.CreateCommand("SPName");
DataTable EmailMessage=new DataTable ();
DataTable EmailContact=new DataTable ();
DataTable EmailAttachment=new DataTable ();
EmailAttachment.TableName = "EmailAttachment";
EmailContact.TableName = "EmailContact";
EmailMessage.TableName = "EmailMessage";
DataTable[] tables = {EmailMessage,EmailContact,EmailAttachment};
DataSet ds= DBHelper .ExecuteDataSet(dbCommand,tables);
public static DataSet ExecuteDataSet(DbCommand command,DataTable[] tables)
{
DataSet ds = new DataSet();
foreach (DataTable dt in tables)
{
ds.Tables.Add(dt);
}
try
{
command.Connection.Open();
DbDataReader reader = command.ExecuteReader();
ds = new DataSet ();
ds.Load (reader, LoadOption.OverwriteChanges,tables);
}
catch (Exception ex)
{ throw ex; }
finally
{ command.Connection.Close(); }
return ds;
}
我已经咨询了http://msdn.microsoft.com/en-us/library/5fd1ahe2.aspx,但不能得到我错的地方。请帮帮我。
Thanks to lot
您正在重写此代码块中的数据集定义
try
{
command.Connection.Open();
DbDataReader reader = command.ExecuteReader();
**ds = new DataSet ();**
ds.Load (reader, LoadOption.OverwriteChanges,tables);
}
这样说:
try
{
command.Connection.Open();
DbDataReader reader = command.ExecuteReader();
//**ds = new DataSet ();**
ds.Load (reader, LoadOption.OverwriteChanges,tables);
}
问候! !
检查ds.Tables.Add方法的过载情况。请确保在添加表时指定了表名,否则它可能只是使用默认名称添加它,例如'TableName'。
祝你好运!
只是一个注释(需要更多的空间!)-
请不要这样做:
...
catch (Exception ex)
{ throw ex; }
...
http://www.codeproject.com/KB/architecture/exceptionbestpractices.aspx http://msdn.microsoft.com/en-us/library/seyhszts.aspx