日期:2014-05-17  浏览次数:20829 次

请教关于textbox值更新到数据库?
现在已经从数据库读取值到TEXTBOX,现在想实现单击按钮时,判断值是否改动,并将TEXTBOX里的值更新到数据库。
具体实现:

TEXTBOX读取到当前行的值并显示在TEXTBOX,单击按钮时,先判断值是否有改动,并更新到数据库的当前行的第1列中。

上面是我的想法,下面是我的代码,我是新手,请勿见笑。

  int cr = dgv_zhangjie.CurrentCell.RowIndex;

  OleDbConnection cn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\data.mdb;Jet OLEDB:Database Password=aa;");
  cn.Open();
  OleDbCommand ocd = new OleDbCommand();
  sql = "update ZJB set zjbm='"+ txt_tianjia .Text +"'where id=" + dgv_zhangjie.Rows[cr].Cells[0].Value.ToString();
  ocd.CommandText = sql;
  ocd.Connection = cn;
  ocd.ExecuteNonQuery();
  cn.Close();

  MessageBox.Show("修改成功!");

请高手指点。。

------解决方案--------------------
where 與前方的 ' 空一格看看。
------解决方案--------------------
'where id=" + dgv_zhangjie.Rows[cr].Cells[0].Value.ToString();
ID是数字就不要ToString了
'where id=" + dgv_zhangjie.Rows[cr].Cells[0].Value;

'where id=" + Convert.ToInt32(dgv_zhangjie.Rows[cr].Cells[0].Value);
------解决方案--------------------
C# code

//如果你用这个不行,就是你的数据库没有连接好。

sql = "update ZJB set zjbm='"+ txt_tianjia .Text +"' where id=" + CurrentRow.Cells[0].Value;

 OleDbCommand command = new OleDbCommand(sql, cn);
                cn.Open();
                command.ExecuteNonQuery();
cn.Close();

------解决方案--------------------
應該是你的 txt_tianjia .Text 或者 dgv_zhangjie.Rows[cr].Cells[0].Value.ToString() 的值的問題,檢查值裡面是否有 @ 的符號存在,因為對資料庫來說,像 @ 或者 : 的符號,分別代表 Sql String、Oracle 的查詢條件參數。