我正在尝试获取数据集中的数据并插入 10 个表。但是无法在数据库中插入数据。我正在使用以下代码
SqlCommand cmdData = new SqlCommand("exec proc_getDataStructure", con);
SqlDataAdapter daData = new SqlDataAdapter(cmdData);
proc_getDataStructure有 10 个选择查询来获取表的结构,例如
select * from tableX1 where 1=0
.
.
select * from tableX10 where 1=0
获取地图数据适配器
daData.Fill(dsData, "INV");
现在我在名为 INV1、INV2、....、INV10 的数据集中有 10 个数据表
我将在查询中将数据表重命名为原始表名
RenameData(ref dsData);
下一步, 在DataSET的每个数据表中做操作和插入记录
像在数据表和数据库中一样为默认适配器做表映射
daData.TableMappings.Add("Table", "tableX1");
.
.
.
daData.TableMappings.Add("Table1", "tableX10");
尝试插入到数据库
new SqlCommandBuilder(daData);
dsINVStructure.AcceptChanges();
daData.Update(dsINVStructure);
没有错误但是数据没有插入到数据库中。
我哪里做错了?
如果你dsINVStructure.AcceptChanges();
那么数据集中永远不会有任何东西值得发送到数据库,因为数据集现在认为所有的行都是Unchanged
.
如果datarow.RowState
是Added
,INSERTed
则由数据适配器决定,如果是Modified
,UPDATEd
则由数据适配器决定。AcceptChanges()
将所有Added
和Modified
行转换为Unchanged
状态,导致适配器忽略它们
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句