我用了一个数据库,里面建立了两个表  foodname  和   foodcount  用于餐厅菜品的名字记录与统计~   我建立了两个datatable,两个adapter,一个builder, 但是为什么知道对我的foodcount进行内容的修改时就会说语法错误……
我用的是adapter的 update()方法;  源码大体如下:   OleDbConnection shujuku = new OleDbConnection();
        OleDbDataAdapter m_adapter1;
        OleDbDataAdapter m_adapter2;
        OleDbCommandBuilder m_builder2;
        DataTable dt_contact1 = new DataTable();
        DataTable dt_contact2 = new DataTable();
        
  shujuku.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\temp\Contacts.mdb";
            shujuku.Open(); 
            m_adapter1 = new OleDbDataAdapter("Select * From foodname", shujuku);
            m_adapter1.Fill(dt_contact1);            m_adapter2 = new OleDbDataAdapter("select * From Contacts", shujuku);            OleDbCommandBuilder m_builder2 = new OleDbCommandBuilder(m_adapter2);
            m_adapter2.Fill(dt_contact2);  dt_contact2.Rows[0]["foodname"] = "ddd";       //这只是随便修改一下信息~~  
            m_adapter2.Update(dt_contact2);       //无论我怎么改,到这句就一定会出错!错误:
语法错误 在查询表达式 '(((? = 1 AND foodname IS NULL) OR (foodname = ?)) AND ((? = 1 AND _year IS NULL) OR (_year = ?)) AND ((? = 1 AND _month IS NULL) OR (_month = ?)) AND ((? = 1 AND _day IS NULL) OR (_day = ?)) AND ((? = 1 AND todaytime IS NULL) OR (todaytime = ?)) AND (ih =' 中。
无奈啊~~~   跪求解决方法~ 困扰了我一个星期了~

解决方案 »

  1.   

    语句出错了但我没学过access相关操作 不好意思。。
      

  2.   

     foodname 和 foodcount 是表名?
    m_adapter2 = new OleDbDataAdapter("select * From Contacts", shujuku);
    那与Contacts不是不符?
      

  3.   

      dt_contact2.Rows[0]["foodname"] = "ddd"; //这只是随便修改一下信息~~   这句话已经对数据库进行了修改了呀 不知道你要的是撒结果
      

  4.   

    提示的错误应该是Sql的语法错误吧?
      

  5.   

    将SQL语句放到查询分析器中执行一下就知道了
      

  6.   

    最简单的方法你在access上建查询 然后直接sql调用查询
      

  7.   

    你用的是无连接系统自动生成的Update代码
      不过不知道无连接能不能在Access里面用
      没有这样用过    你看看有没有主键
      或者这样试试  修改的时候把所有的字段都修改一下  然后更新  不出错的话  你就知道问题出在哪了
      你最好是用连接方式自己写SQL语句
      

  8.   

    应该是生成的SQL语句错误access数据库不能使用 IS NULL
    得使用iif和isnull配合,具体自己搜搜
    而IS NULL是SQL SERVER的语句
      

  9.   

    我近些日子偶尔发现问题的~ 语句没有错误~  好像是因为我的表里的字段名字~用了"day"一类的系统关键字,我把表改了就一下没事了~