你把catch打出来看看try
{
  ...
}
catch(OleDbException ea)
{
  MessageBox.Show("数据库操作失败"+ea.Message);
}我有一次也是写不上,后来查出的是Access的驱动太旧了,后来取下了个mdac2.8的就好了

解决方案 »

  1.   

    用SELECT点样修改数据啊?
    UPDATE?
      

  2.   

    是不是在这一句:myAdapter.InsertCommand.ExecuteNonQuery();出错的?
      

  3.   

    我想也只能是这一句了,
    你并没有设置myAdapter.InsertCommand的相应参数呀,不过我建议不要这样用insert
      

  4.   

    让myAdapter只负责取数据和更新,即Fill和Update,其他如Insert和Delete用OleDbCommand来完成,这样也很方便的,
    string sql="insert into ....";
    OleDbCommand cmd=new OleDbCommand(sql,conn);
    try
    {
    if(conn.State!=ConnectionState.Open)
        conn.Open();
    cmd.ExecuteNonQuery();
    }
    catch(Exception err)
    {
    MessageBox.Show(err.Message);
    ...
    }
    delete也类似。
      

  5.   

    我把oleDbAdapter oleDbConnection oleDataSet 加入到窗体上来,我最上面的程序就好用了。我定义的为什么不行,纳闷!!!
      

  6.   

    要执行SQL语句,可以考虑使用OleDbCommand comm = new OleDbCommand("",DbConn);
      comm.CommandText = "....";
      comm.ExecuteNonQuery();
      

  7.   

    非常感谢大家!不知做报表是否用水晶报表。我用DataSet做数据源老要调出登陆框,不知大家会否?