我用了一个数据库,里面建立了两个表 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 =' 中。
无奈啊~~~ 跪求解决方法~ 困扰了我一个星期了~
我用的是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 =' 中。
无奈啊~~~ 跪求解决方法~ 困扰了我一个星期了~
m_adapter2 = new OleDbDataAdapter("select * From Contacts", shujuku);
那与Contacts不是不符?
不过不知道无连接能不能在Access里面用
没有这样用过 你看看有没有主键
或者这样试试 修改的时候把所有的字段都修改一下 然后更新 不出错的话 你就知道问题出在哪了
你最好是用连接方式自己写SQL语句
得使用iif和isnull配合,具体自己搜搜
而IS NULL是SQL SERVER的语句