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();
修改的在之前的代码中,我这是把datatable中的数据更新到数据库中的代码,我现在就差把数据库更新了,能帮帮忙吗?
追答我问你,你的dr赋值循环了半天到底要干啥,到最后也没看到用它
追问把dt中的每行数据都存到dr中,然后存入数据库
追答你这代码只是把你定义的dr赋值为索引为0行的值,你想能改掉吗
追问那我应该怎么改呢?
追答关键是你没修改内容,代码中我没看到你有把查出来的Table数据修改过,就只把原来的Table循环了一次,这是甚而问题,兄弟,建议整理好逻辑,想好怎么实现再code
参考技术A 我只看到将dt的数据遍历赋值给dr了,没看到对dt的数据有任何的修改啊追问修改的在之前的代码中,我这是把datatable中的数据更新到数据库中的代码,我现在就差把数据库更新了,能帮帮忙吗?
追答我只看出你的dt数据没有改变来了,具体的修改代码,我也不太会,还需学习。。。
参考技术B 用datasetC# winform中 界面加载时datagridview绑定了数据源(datatable),修改datagridview的内容后,如何更新数
重新绑定,例如:在事件中加入如下代码,
datagridview.DataSours=(数据库新查询的数据);
datagridview.Bind(); 参考技术A 获取datagridview里边修改的数据直接sql语句直接修改, 参考技术B 窗口的load事件里写绑定
以上是关于c# 为啥我修改了datatable后,再更新数据库,只是在原来的表中的行往后加,却不是重新写?应该怎么改啊?的主要内容,如果未能解决你的问题,请参考以下文章
C#如何将datatable中的数据批量更新到MYSQL数据库