访问表更新失败

时间:2018-08-15 11:12:58

标签: c# ms-access oledb

我使用以下代码从Access数据库填充DataGridView。如果“数据网格”已更新,则单击“保存”按钮后,数据库将保存数据。

奇怪的是,它适用于3个数据表中的2个。对于最后一个,它将引发异常:

  

INSERT INTO语句中的语法错误

public Tables(string tabName)
{
    InitializeComponent();
    this.Text = tabName;
    this.query = string.Format("SELECT *" + " FROM [{0}]", tabName);
    conn.Open();
    detailTable = new DataTable();
    string tableName = tabName;
    string query = string.Format("SELECT * FROM [{0}]", tableName);
    OleDbDataAdapter detailAdapter = new OleDbDataAdapter(query, conn);
    if (detailAdapter != null)
    {
        detailAdapter.Fill(detailTable);
    }
    DataGridView.DataSource = detailTable;
    conn.Close();
}

private void BtnSave_Click(object sender, EventArgs e)
{
    OleDbCommand comm = new OleDbCommand(query, conn);
    OleDbDataAdapter adapter = new OleDbDataAdapter(comm);
    OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);
    adapter.Update(detailTable);
}

即使单词是保留关键字(尽管我搜索了它们),也没有办法解决这个问题。 详细信息tabName可以是“合作伙伴”,“工资”,“描述”和“帐户”。它仅对“合作伙伴”不起作用。

1 个答案:

答案 0 :(得分:0)

好吧,事实证明我错了,我为自己的固执而道歉。问题出在电子邮件列中,我不明白为什么它的破折号有问题。