翻了一下以前的贴子,没有合适的答案,所以只好来重新问:我的程序如下:
首先声明了一堆控件
public System.Data.OleDb.OleDbConnection ole_con;
public System.Data.OleDb.OleDbDataAdapter ole_ada;
public System.Data.DataSet dataset1;
public System.Data.OleDb.OleDbCommandBuilder ole_com;然后写了一个函数,填充dataset
private void button1_Click(object sender, System.EventArgs e)
{
this.dataset1 = new DataSet ();
string constring = @"Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = db1.mdb";
this.ole_con = new System.Data.OleDb.OleDbConnection (constring);
this.ole_ada = new System.Data.OleDb.OleDbDataAdapter("SELECT * FROM student", this.ole_con);
this.ole_ada.Fill(this.dataset1); }至此都没有问题,数据成功的填充进去了,用datagrid显示出来了都然后就写了一个update的函数
private void button2_Click(object sender, System.EventArgs e)
{
this.dataset1.Tables[0].Rows[0]["grade"] = 0;
this.ole_com = new System.Data.OleDb.OleDbCommandBuilder (this.ole_ada);
this.ole_ada.Update(this.dataset1);//*****
}这个时候在注释星号的那一句跳出异常。如下:
"Syntax error (missing operator) in query expression '( (student ID = ?) AND ((? = 1 AND course ID IS NULL) OR (course ID = ?)) AND ((? = 1 AND grade IS NULL) OR (grade = ?)) )'." 哪位大牛能给解释一下?写了 这个程序中所有的关于数据库的代码都是自己写的,没有拖控件。。
首先声明了一堆控件
public System.Data.OleDb.OleDbConnection ole_con;
public System.Data.OleDb.OleDbDataAdapter ole_ada;
public System.Data.DataSet dataset1;
public System.Data.OleDb.OleDbCommandBuilder ole_com;然后写了一个函数,填充dataset
private void button1_Click(object sender, System.EventArgs e)
{
this.dataset1 = new DataSet ();
string constring = @"Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = db1.mdb";
this.ole_con = new System.Data.OleDb.OleDbConnection (constring);
this.ole_ada = new System.Data.OleDb.OleDbDataAdapter("SELECT * FROM student", this.ole_con);
this.ole_ada.Fill(this.dataset1); }至此都没有问题,数据成功的填充进去了,用datagrid显示出来了都然后就写了一个update的函数
private void button2_Click(object sender, System.EventArgs e)
{
this.dataset1.Tables[0].Rows[0]["grade"] = 0;
this.ole_com = new System.Data.OleDb.OleDbCommandBuilder (this.ole_ada);
this.ole_ada.Update(this.dataset1);//*****
}这个时候在注释星号的那一句跳出异常。如下:
"Syntax error (missing operator) in query expression '( (student ID = ?) AND ((? = 1 AND course ID IS NULL) OR (course ID = ?)) AND ((? = 1 AND grade IS NULL) OR (grade = ?)) )'." 哪位大牛能给解释一下?写了 这个程序中所有的关于数据库的代码都是自己写的,没有拖控件。。
放在this.ole_ada.Fill(this.dataset1);前试试
这样你就可以更新了;private void button1_Click(object sender, System.EventArgs e)
{
this.dataset1 = new DataSet ();
string constring = @"Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = db1.mdb";
this.ole_con = new System.Data.OleDb.OleDbConnection (constring);
this.ole_com = new System.Data.OleDb.OleDbCommandBuilder (this.ole_ada);
this.ole_ada = new System.Data.OleDb.OleDbDataAdapter("SELECT * FROM student", this.ole_con);
this.ole_ada.Fill(this.dataset1); }