【问题标题】:System Error using From Clause with OleDbDataAdapter将 From 子句与 OleDbDataAdapter 一起使用的系统错误
【发布时间】:2016-10-11 11:18:56
【问题描述】:

使用adapter 可以正常工作,但是当我使用adapter2 时出现错误。

注意:代码为form1。我正在使用两个分组框和两个数据网格视图。

   `private OleDbConnection connection = new OleDbConnection();
    DataTable table = new DataTable();
    OleDbDataAdapter adapter = new OleDbDataAdapter();
    DataSet set = new DataSet();

    public Home()
    {
        InitializeComponent();
        connection.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=G:\DatabesSystem.accdb;Persist Security Info=False;";
        adapter1();
        adapter2();
    }

    private void adapter1()
    {
        try
        {
            OleDbDataAdapter adapter = new OleDbDataAdapter("select CID, Firstname, Middlename, Lastname, Address, Contact_Number, Email from Clients", connection);
            adapter.Fill(set, "Clients");
            table = set.Tables["Clients"];
            dataGridView1.DataSource = table;
        }

        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }

    private void adapter2()
    {
        try
        {
            OleDbDataAdapter adapter2 = new OleDbDataAdapter("select Transaction_Number, Client_Name, Unit_Name, Full_Price, Down_Payment, Monthly_Payment, Remaning_Balance from Transaction", connection);
            adapter2.Fill(set, "Transaction");
            table = set.Tables["Transaction"];
            dataGridView2.DataSource = table;
        }

        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }`

【问题讨论】:

  • 什么错误,请发布确切的异常文本?
  • 错误:FROM 子句中的系统错误
  • 您有两个选择语句。哪个是抛出错误?您的表格是否包含所有特定的列?
  • @Sefa 描述说:第二个,select from transaction...所以我猜名字不对。
  • @KielDred 在第二个 FROM 之前说:“Remaning_Balance”不应该是:“Remaining_Balance”?

标签: c# sql ms-access


【解决方案1】:

Transaction 是 SQL 中的保留关键字。尝试将表名写在括号中:

OleDbDataAdapter adapter2 = new OleDbDataAdapter("select Transaction_Number, Client_Name, Unit_Name, Full_Price, Down_Payment, Monthly_Payment, Remaning_Balance from [Transaction]", connection);

或者将你的表名重命名为另一个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-25
    • 1970-01-01
    • 1970-01-01
    • 2022-11-08
    • 2016-05-06
    • 2019-04-20
    相关资源
    最近更新 更多