如果dataset中datatable是通过简单的 select A,B,C.. from table1 where <condition>单表查寻得到的,那么datatable中的记录和数据库表中记录存在对应关系,因此,通UpdateCommand,InsertCommand,DeleteCommand可以对dataset进行操作,通过dataadapter的update对数据库数据进行更新。 但是如果通过多表查寻得到的dataset,就不能用UpdateCommand,InsertCommand,DeleteCommand了,这样理解对吧? 我如果想得到多表查寻的结果,并且还要对相关的记录进行删除、更新,插入操作,是不是先使用dataset中对多表查寻中的每个表建立datatable,然后还要建立一个datatable,用来存储多表查寻的结果?比如,数据库中有A,B2个表,我在dataset中就得有datatableA和datatableB,还得有datatableC,datatableC用来存储对A和B多表查寻的结果,是这样吗?如果A和B的数据多的话,有出来个C,岂不是耗资源?
2、过滤用DataView
r[0]="001";
.
ds1.Tables[0].Rows.Add(r);
(OleDbDataAdapter)的另外三个命令对象(UpdateCommand,InsertCommand,DeleteCommand)
手工配置了,因为向导配置是不会配的(多表时,不建议修改,并且向导不知道怎样配,太复杂了)
如果用OleDbCommandBuilder更不会完成这项工作了,所以得自己配。
情况 2 你是把这几个表放在相应的几个DataTable中,然后建立关联。不过你提到了left join
就好象不是这种情况了。
插入一行新行的操作如下:
DataRow dataRow = dataTable.NewRow();
dataRow[0] = 1;
dataRow[1] = "name1";
dataTable.Rows.Add(dataRow);
但是如果通过多表查寻得到的dataset,就不能用UpdateCommand,InsertCommand,DeleteCommand了,这样理解对吧?
我如果想得到多表查寻的结果,并且还要对相关的记录进行删除、更新,插入操作,是不是先使用dataset中对多表查寻中的每个表建立datatable,然后还要建立一个datatable,用来存储多表查寻的结果?比如,数据库中有A,B2个表,我在dataset中就得有datatableA和datatableB,还得有datatableC,datatableC用来存储对A和B多表查寻的结果,是这样吗?如果A和B的数据多的话,有出来个C,岂不是耗资源?