【问题标题】:DataAdapter Fill without commandDataAdapter 无命令填充
【发布时间】:2013-04-11 18:58:36
【问题描述】:

我正在尝试在不使用命令的情况下填充我的数据适配器。我有一个手动填充的数据集,但是当我尝试使用我的 dataAdapter 附加此数据集时,我开始出现“在调用 'Fill' 之前尚未初始化 Select 命令属性”。这是我的代码有人对此有想法吗?

谢谢

OleDbDataAdapter ad1=new OleDbDataAdapter(cmd);
OleDbDataAdapter ad2=new OleDbDataAdapter(cmd2);
OleDbDataAdapter ad3 = new OleDbDataAdapter();

DataSet ds = new DataSet();
DataTable db1=new DataTable();
DataTable db2=new DataTable();
DataTable db3 = new DataTable();
ds.Tables.Add();

ad1.Fill(db1);
ad2.Fill(db2);
int i;
foreach (DataRow r in db2.Rows)
{
    i = 0;
    foreach (DataRow rc in db1.Rows)
    {
        if (r[0].ToString() == rc[0].ToString())
        {
            i = 1;
        }
    }
    if (i == 0) { ds.Tables[0].ImportRow(r); }

}
ad3.Fill(ds);

【问题讨论】:

    标签: c# sql dataset dataadapter


    【解决方案1】:

    我不完全确定您要在这里完成什么,从您的描述中不清楚。您已经在 DataSet 中放置了数据:

        ds.Tables[0].ImportRow(r);
    

    此外,任何类型的数据适配器都必须至少具有关联的 SELECT 命令才能填充数据表或数据集。

    您能否更清楚地描述您的目标?您是否尝试将表添加到数据集中?从一些外部来源填充它?查看您导入的行?

    【讨论】:

    • 其实我只是想用我手动填充的数据集填充我的datagridview,但是当我尝试它显示为空时
    • 好吧,这很有道理。您已经在数据集中有一个表,因此您只需将 datagridview 的数据源设置为该表。试试 myDataGridView.DataSource = ds.Tables[0];这将显示您导入到表中的行。
    • Jas,这对你有用吗?如果是这样,请标记已回答的问题。谢谢!
    猜你喜欢
    • 2011-08-13
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    • 2018-05-26
    • 2018-07-16
    • 2011-06-22
    • 2011-06-21
    • 2015-04-23
    相关资源
    最近更新 更多