c# 为啥我修改了datatable后,再更新数据库,只是在原来的表中的行往后加,却不是重新写?应该怎么改啊?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# 为啥我修改了datatable后,再更新数据库,只是在原来的表中的行往后加,却不是重新写?应该怎么改啊?相关的知识,希望对你有一定的参考价值。

我想将修改好后的datatable写入数据库中当前的a表,a表原来有数据,想覆盖掉
我的代码:
string cs = "server=.;integrated security=SSPI;database=test";
SqlConnection conn = new SqlConnection(cs);
conn.Open();
SqlCommand cmd = new SqlCommand("select * from a", conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
SqlCommandBuilder scb = new SqlCommandBuilder(da);
da.Fill(dt);
DataRow dr = dt.Rows[0];
for (int j = 0; j < dt.Rows.Count; j++) //修改table中每一行的内容

dr = dt.Rows[j];

da.Update(dt);
conn.Close();

无语,你这肯定不行啊,大哥你的dt中的数据永远没有改变,你更新啥追问

修改的在之前的代码中,我这是把datatable中的数据更新到数据库中的代码,我现在就差把数据库更新了,能帮帮忙吗?

追答

我问你,你的dr赋值循环了半天到底要干啥,到最后也没看到用它

追问

把dt中的每行数据都存到dr中,然后存入数据库

追答

你这代码只是把你定义的dr赋值为索引为0行的值,你想能改掉吗

追问

那我应该怎么改呢?

追答

关键是你没修改内容,代码中我没看到你有把查出来的Table数据修改过,就只把原来的Table循环了一次,这是甚而问题,兄弟,建议整理好逻辑,想好怎么实现再code

参考技术A 我只看到将dt的数据遍历赋值给dr了,没看到对dt的数据有任何的修改啊追问

修改的在之前的代码中,我这是把datatable中的数据更新到数据库中的代码,我现在就差把数据库更新了,能帮帮忙吗?

追答

我只看出你的dt数据没有改变来了,具体的修改代码,我也不太会,还需学习。。。

参考技术B 用dataset

C# winform中 界面加载时datagridview绑定了数据源(datatable),修改datagridview的内容后,如何更新数

重新绑定,例如:
在事件中加入如下代码,
datagridview.DataSours=(数据库新查询的数据);
datagridview.Bind();
参考技术A 获取datagridview里边修改的数据直接sql语句直接修改, 参考技术B 窗口的load事件里写绑定

以上是关于c# 为啥我修改了datatable后,再更新数据库,只是在原来的表中的行往后加,却不是重新写?应该怎么改啊?的主要内容,如果未能解决你的问题,请参考以下文章

C#如何将datatable中的数据批量更新到MYSQL数据库

C# update方法更新数据库

C# 如何动态更新DataGridView

jquery datatables更新数据到服务器,更新完成后,修改页面上的信息

C#编程中如何改变DataTable里的某一条记录?

由于使用自动增量添加到表中,如何使用更新的数据刷新 C# DataTable?