Системная ошибка при использовании предложения From с OleDbDataAdapter

#c# #sql #ms-access

#c# #sql #ms-access

Вопрос:

Его использование 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);
        }
    }`
  

Комментарии:

1. Какая ошибка, пожалуйста, опубликуйте точный текст исключения?

2. Ошибка: системная ошибка в предложении FROM

3. У вас есть два оператора select . Какой из них выдает ошибку? Указаны ли в вашей таблице все столбцы?

4. @Sefa В описании сказано: второй, выберите из транзакции… Так что я предполагаю, что имя неверно.

5. @KielDred непосредственно перед вторым ИЗ него говорит: «Remaning_Balance » разве это не должно быть: «Remaining_Balance»?

Ответ №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);
  

Или переименуйте имя вашей таблицы в другое.