请教关于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 的查詢條件參數。