ADO.NET - 使用 Adapter.Update() 插入父表中的列子集
我有一个像这样的适配器 -
var ds = new DataSet("T1");
adapter.Fill(ds, "Table1");
现在,Table1 有 3 列 - Col1、Col2、Col3
我有一个包含 Col1 和 Col3 的表 2。如何使用上述适配器将 Table1 中仅选定列的记录插入到 Table2 中?我尝试过这个,但没有运气。
// remove the column which is not required
ds.Tables["Table1"].Columns.Remove("Col2");
// clear the old table mappings
adapter.TableMappings.Clear();
// create new table mappings
DataTableMapping mapping = adapter.TableMappings.Add("Table2", ds.Tables["Table1"].ToString());
mapping.ColumnMappings.Add("Col1", ds.Tables["Table1"].Columns[0].ColumnName);
mapping.ColumnMappings.Add("Col3", ds.Tables["Table1"].Columns[2].ColumnName);
// fill the adapter with new Dataset
var newDs = ds.Copy();
adapter.Fill(newDs);
ds.Dispose();
// Insert records into new Table
recordsUpdated += adapter.Update(newDs , "Table2");
错误 - 其他信息:在 DataTable 'Table1' 中缺少 SourceColumn 'Col2' 的 DataColumn 'Col2'。
I have a adapter like this -
var ds = new DataSet("T1");
adapter.Fill(ds, "Table1");
Now, Table1 has 3 columns - Col1, Col2, Col3
I have a Table 2 with Col1 and Col3. How can I use the above adapter to Insert records for only selected columns from Table1 into Table2 ? I tried this, but no luck.
// remove the column which is not required
ds.Tables["Table1"].Columns.Remove("Col2");
// clear the old table mappings
adapter.TableMappings.Clear();
// create new table mappings
DataTableMapping mapping = adapter.TableMappings.Add("Table2", ds.Tables["Table1"].ToString());
mapping.ColumnMappings.Add("Col1", ds.Tables["Table1"].Columns[0].ColumnName);
mapping.ColumnMappings.Add("Col3", ds.Tables["Table1"].Columns[2].ColumnName);
// fill the adapter with new Dataset
var newDs = ds.Copy();
adapter.Fill(newDs);
ds.Dispose();
// Insert records into new Table
recordsUpdated += adapter.Update(newDs , "Table2");
ERROR - Additional information: Missing the DataColumn 'Col2' in the DataTable 'Table1' for the SourceColumn 'Col2'.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我已经这样做了 - a.
使用新表初始化 SqlDataAdapter (SELECT * FROM Table2) - 调用它
b. 从 Table1 的数据表中删除不需要的列
c. 将此数据表的行状态更新为“已添加”,如下所示 -
d. 最后使用步骤 a 中创建的适配器“插入”。像这样 -
I have done this -
a.Initialise a SqlDataAdapter with the new Table (SELECT * FROM Table2) - call it
b.Remove the unwanted column from the data table of Table1
c.Update the row state of this data table to 'Added' like this -
d.Finally 'insert' using the adapter created in Step a. like this -