现在已经从数据库读取值到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("修改成功!");请高手指点。。

解决方案 »

  1.   

    按钮单击事件,将TEXTBOX值更新到数据库。
      

  2.   

    where 與前方的 ' 空一格看看。
      

  3.   

    dgv_zhangjie.Rows[cr].Cells[0].Value.ToString() 是多少?
      

  4.   

    dgv_zhangjie.Rows[cr].Cells[0].Value.ToString() 這個值為多少?
      

  5.   

    '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);
      

  6.   

    单步到ocd.ExecuteNonQuery();时跳走了。。,,可能出现的原因是什么,请高人指点
      

  7.   


    //如果你用这个不行,就是你的数据库没有连接好。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();
      

  8.   

    不好意思这里是 where id=" + dgv_zhangjie.CurrentRow.Cells[0].Value
      

  9.   

    你看一下sql赋值以后的值是什么,应该是sql的问题
      

  10.   

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