代码: private void Form1_Load(object sender, EventArgs e)//填充数据 { conn = new SqlConnection("server=woo;database=db_15;uid=sa;pwd=1234"); SqlCommand cmd = new SqlCommand("select * from tb_command",conn); sda = new SqlDataAdapter(); sda.SelectCommand = cmd; ds = new DataSet(); sda.Fill(ds, "cs"); dataGridView1.DataSource = ds.Tables[0]; } private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { //将数据读入Textbox修改 textBox1.Text = dataGridView1.SelectedCells[0].Value.ToString(); textBox2.Text = dataGridView1.SelectedCells[1].Value.ToString(); textBox3.Text = dataGridView1.SelectedCells[2].Value.ToString(); textBox4.Text = dataGridView1.SelectedCells[3].Value.ToString(); textBox5.Text = dataGridView1.SelectedCells[4].Value.ToString(); } private void button1_Click(object sender, EventArgs e) //更新数据 { DataTable dt = ds.Tables["cs"]; sda.FillSchema(dt, SchemaType.Mapped); DataRow dr = dt.Rows.Find(label1.Text); dr["姓名"] = label2.Text.Trim(); dr["性别"] = label3.Text.Trim(); dr["年龄"] = label4.Text.Trim(); dr["奖金"] = label5.Text.Trim(); SqlCommandBuilder cmdbuilder = new SqlCommandBuilder(sda); sda.Update(dt); }
错误提示见图片,请高手指点,谢谢!
都是对的,VS没有录入错误的提示!
谢谢回复,如果是这个原因要怎么修改?
注:以上代码是一个教程上的例子,写的一模一样(数据库用的也是案例带的数据库),我写的就是过不了!
数据库中编号的那一列是否设置为主键了。还有dataset 如果使用vs工具设置的话,看看编号那一列是否是主键。
追问dataset编号设定为主键怎么设定?
label1.Text对应的是编号,在数据库中是主键!但没有在VS中设定主键。
追答如果你对update不是很熟悉,你还是直接用sql语句好了,或者有sqlhelper之类的辅助一下。
C# 使用DataAdapter对象的update方法,更新DataSet中修改的数据,产生的...
字符串输入不对,看看是不是输入的问题,比如中英文输入法下,用了中文的逗号和括号
DataAdapter的Update方法的用法
DataSet 中的第一个 DataTable。当调用 Update 方法时,DataAdapter 会分析已做的更改并执行相应的命令(INSERT、UPDATE 或 DELETE)。当 DataAdapter 遇到对 DataRow 所做的更改时,它将使用InsertCommand、UpdateCommand 或 DeleteCommand 来处理该更改。这样,您就可以通过在设计时指定命令语法并在可能时...
c# datagridview转换为access报错,违反并发性: UpdateCommand 影响了...
tableadapter生成的更新代码会对原值加条件来判断。update table set f1=newvalue where f1=oldvalue,如果返回rowcount为0 就会弹出此错误消息。如果你从数据库取得数据之后,该数据被其他地方更新,你再去更新就会出现此问题。另外,如果你更新了数据库里面的数据,而dataset在更新之后没有做AcceptChange,那...
C# SqlDataAdapter.Update的用法
public DataSet GetData(string selecttext, SqlParameter[] parmes, string keyset, string tablename, Boolean g){ try { connection = new SqlConnection(connectionstring);dataadapter = new SqlDataAdapter();dataadapter.SelectCommand = this.CommandFile(selecttext, parmes, g);SqlCommandBuilder SCB ...
C#ado.net 我有个dataset ds 里面的数据是两表连接的,我还有个datagridv...
你选择dw的某一行,就应该知道这一行的ID号,这一行的其他数据在textBox里面显示。那么,点击修改按钮,你就根据这个ID修改就行了.string sql=update biao set XX=textbox1.text and ... where ID=刚才得到的ID号码 。。。使用DataAdapter 的update方法。。。就这样就行了。
C#winform中,根据datagridview更新数据库
可以实现,也不难,结合Dataset.设置DataGridView的数据绑定.在修改删除完成后,调用DataAdapter的Update方法.
c#winform datagridview控件怎么在上面直接修改并且更新到sql数据库
this.datagridview1.datasource=dataset1.tables[0];\/\/绑定数据源,这样在界面修改单元格时,就可以更新到dataset dataAdapter dataadapter1=new dataAdapter(selectSQL,connnection);dataadapter1.update(dataset1.tables[0]);\/\/通过datatable修改数据库 ...
C#中DataGridview 删除 报错 未将对象引用设置到对象的实例_百度...
首先检查一下你的DataAdapter是否和Connection关联了。为了返回构造 INSERT、UPDATE 和 DELETE SQL 命令所需的元数据,OleDbCommandBuilder 必须执行 SelectCommand。 因此,必须额外经历一次到数据源的过程,这可能会降低性能。若要实现最佳性能,请显式指定命令而不是使用 OleDbCommandBuilder。也就是说你的...
C#的OleDbConnection如何一次执行多条Update语句
多行UPDATE是没有的,不过你可以这样做,可以不用写SQL语句,效果也好一些.你数据不是读出来了么,假设你放在数据表dt1中,然后将多行数据修改,修改完后,如果你用的是DataAdapter da 来查表,用,调用da.fill(dt),然后调用da.update()就可以实现整个表的多行修改写回到数据库了,这样会比较好一些....
dataadapter 的update方法改变数据库数据,那改变dataset表里的数据...
可以改变数据的 本来就是一个更新命令