小弟根据要求,使用update语句来修改Access数据库中员工的信息,代码如下
 //修改员工信息
        private void button1_Click(object sender, EventArgs e)
        {
            OleDbCommand ocm11;
            occ.Open();            
            string update = "update EmpInfo set E_Name=@11,E_Sex=@12,Department=@13,E_Tel=@14,E_add=@15,E_Title=@16 where ID=@17";
            ocm11 = new OleDbCommand(update, occ);
            ocm11.Parameters.AddWithValue("@11", tbname.Text.ToString());
            ocm11.Parameters.AddWithValue("@12", cbsex.Text.ToString());
            ocm11.Parameters.AddWithValue("@13", cbdep.Text.ToString());
            ocm11.Parameters.AddWithValue("@14", tbtel.Text.ToString());
            ocm11.Parameters.AddWithValue("@15", tbadd.Text.ToString());
            ocm11.Parameters.AddWithValue("@16", cbtit.Text.ToString());
            ocm11.Parameters.AddWithValue("@17", tbID.Text.ToString());
            int flag = ocm.ExecuteNonQuery();
            if (flag > 0)
            {
                MessageBox.Show("修改成功");
                occ.Close();
                BindData();
                return;
            }
            else
            {
                MessageBox.Show("修改失败!请重试!", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                occ.Close();
                return;
            }
        }可不知道为何,每次运行的时候都是失败,断点测试后,发现flag为0,但又不知怎么修改,望大神指教。
附上数据库截图C#Visual Studio 2010数据库

解决方案 »

  1.   

    参考这个文章中的实现:http://www.cnblogs.com/whitetiger/archive/2007/03/27/689620.html
      

  2.   

    flag为0说明没有跟新的记录
    原因可能又几个
    一个是你的sql写的有问题
    第二个就是你update的id不存在 就是这样
      

  3.   

    where ID=@17
    上面那个条件,命中记录数为0,所以更新条数为0
      

  4.   

    你走断点能走到flag并且没有异常,首先说明ocm11和sql语句都没有问题,也就是说数据库是通的。
    现在只能推测是sql语句的where条件没有任何数据。