繁体   English   中英

C#DataAdapter,DataTable->不更新回SQL Server表

[英]C# DataAdapter, DataTable -> not updating back to SQL Server table

我编写了一个简单的测试来检查我的dataAdapter代码。 我连接到SQL Server数据库,填充数据表,连续更改一个值,然后调用da.Update(table)将更改发送回SQL Server。 该表具有主键。 完全不确定为什么这不起作用...(请参阅代码)

connectionToSQL = new SqlConnection(SQLConnString);
connectionToSQL.Open();

var wktbl = new DataTable();

var cmd = new SqlCommand("SELECT * FROM TAGS$",connectionToSQL);                 
var da = new SqlDataAdapter(cmd);
var b = new SqlCommandBuilder(da);
da.Fill(wktbl);

wktbl.Rows[3][2] = "5";
wktbl.AcceptChanges();

da.Update(wktbl);

只需跳过对AcceptChanges的调用 ,代码就可以正常工作。 它将所有行都标记为未修改,因此您的Update调用无需执行任何操作。

好的,我想将我的问题扩展到我最初的工作...我从Excel电子表格中选择*到dt。 我想获取这些值并更新SQL表。 (由于从原始Excel电子表格中手动导入到SQL,SQL表的存在,具有主键集,用户更新excel工作表,我需要更新SQL值。)我正在将RowState设置为Modifyed以努力调用更新。

connectionToSQL =新的SqlConnection(SQLConnString); connectionToSQL.Open();

            var cmd = new SqlCommand("SELECT * FROM TAGS$",connectionToSQL);                 
            var da = new SqlDataAdapter(cmd);
            var b = new SqlCommandBuilder(da);

            //dt.Rows[3][2] = "20";

            foreach (DataRow r in dt.Rows)
            {
                r.SetModified();
            }

            da.Update(dt);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM