C# update方法更新数据库
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# update方法更新数据库相关的知识,希望对你有一定的参考价值。
C#用update方法更新数据库时,内存表为datatable,更新结果不是将数据库修改成datatable的值,而是保留数据库原值,同时将datatable中的值Insert进数据库了,求方法,更新数据库值而不是Insert
connection.Open();
mysqlCommand command = new MySqlCommand();
MySqlDataAdapter adapter = new MySqlDataAdapter();
MySqlCommandBuilder builder = new MySqlCommandBuilder(adapter);
command.CommandText = sqlString;
command.CommandType = CommandType.Text;
adapter.SelectCommand = command;
adapter.SelectCommand.Connection = connection;
adapter.Update(datatable);//关键语句,执行更新数据集,更新数据库语句
adapter.Dispose();
connection.Close();
string delStr = "update Users set UserPassword = \'"+ textBox2.Text +"\',UserSort=\'"+textBox3.Text+" \' where UserID = " + textBox1.Text ;
int ni= mycom.ExecuteNonQuery();
if(ni>0)
MessageBox.Show("修改成功", "提示");
else
MessageBox.Show("修改失败", "提示");
UPDATE语句用于更新修改指定记录的数据,对符合条件的记录,更新修改指定字段的值。若没有WHERE条件限定,则对所有记录进行更新修改。 参考技术A 那你就不要写更新啊
你就写成加载的就可以了
你一定要清楚,更新时,就是把内存表中的值,更新到数据库的
如果,按照你的意思,应该就是,重新,从数据库中读取值,加载一下就可以了。 参考技术B 以前也遇到这个问题,没有深入解决,
后来曲线救国的做法是
//先新建一个空datatable
datatale dtdatatable1=new datatable();
//将datatable中的记录复制到datatable1中
datatable1.Merge(datatable);
//将datatable表中记录全部删除,只能用row.delete,用datatable.clear()
//等其他的都不行
foreach (DataRow row in datatable.Rows)
row.Delete();
//然后将datatable1中的记录复制回datatable1中
datatable.Merge(datatable1);
//然后再update应该可以了
期待高手本回答被提问者采纳 参考技术C datatable.Rows[i].SetModified
使用DataTable 更新的时候,你要知道DataTable的 RowState 为
Add 还是Modify 你那里肯定是为Add了所以Update方法才会调用
Insert,要其RowState为Modify才会调用Update. 参考技术D string commsql = "update表名 set 要修改的东西 where 条件;
MySqlCommand comm = new MySqlCommand (commsql, Class_lianjie.conn);
comm.ExecuteNonQuery();
comm.Clone();
Class_lianjie.conn是什么你知道吧
以上是关于C# update方法更新数据库的主要内容,如果未能解决你的问题,请参考以下文章
sql在update更新时如何快速且大批量的更新数据(C#中写的)
C# sqlsever数据库 通过datatable更新数据问题
如何使用 DataAdapter.Update 方法同时更新 Access 数据库和 .NET DataSet 对象?
C# SqlCeDataAdapter 在从 datagridview 更改值后调用 Adapter.Update() 时不更新数据库中的值