问题描述
我通过textbox向datagridview的某单元格赋值,然后用以下代码更新数据库问题出在执行importrow时,dtShow和dtUpdate的rowstate属性都是unchanged。导致importrow没有生效。我发现,在textbox向单元格赋值完后先点击其它单元格,就可以更新(rowstate变成了modified)。尝试了用focus()来使其他单元格获取焦点,但仍然不行。不知道该怎么改动。privateBooleandbUpdate(){stringstrSql="select*fromPRODUCT";DataTabledtUpdate=newDataTable();dtUpdate=this.dbconn(strSql);dtUpdate.Rows.Clear();DataTabledtShow=newDataTable();dtShow=(DataTable)this.dataGridView1.DataSource;for(inti=0;i<dtShow.Rows.Count;i++){//dtUpdate.Rows.Add(dtShow.Rows[i].ItemArray);dtUpdate.ImportRow(dtShow.Rows[i]);}try{stringConstr="server;database;uid;pwd";SqlConnectionconn=newSqlConnection(Constr);conn.Open();SqlCommandBuilderCommandBuilder;CommandBuilder=newSqlCommandBuilder(this.adapter);this.adapter.Update(dtUpdate);conn.Close();}catch(Exceptionex){MessageBox.Show(ex.Message.ToString());returnfalse;}dtUpdate.AcceptChanges();returntrue;}
解决方案
解决方案二:
这样试试呢?dtUpdate.BeginLoadData();。。。。。。dtUpdate.AcceptChanges();dtUpdate.EndLoadData();
解决方案三:
引用1楼tjw8803的回复:
这样试试呢?dtUpdate.BeginLoadData();。。。。。。dtUpdate.AcceptChanges();dtUpdate.EndLoadData();
不管用
解决方案四:
upupup