Member 13951068 Ответов: 2

[OLE DB] system.data.oledb.oledbexception : 'синтаксическая ошибка в предложении from.'


Привет,

У меня есть этот текст ошибки "System.Data.OleDb.OleDbException : "синтаксическая ошибка в предложении FROM"."
я не знал, почему это делает это сообщение об ошибке

Пожалуйста, вы можете мне помочь ?

Код :

private void Form1_Load(object sender, EventArgs e)
        {
           
            using (OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\DataBase\Test.accdb"))
            {
                OleDbCommand command = new OleDbCommand("SELECT * FROM note", con);

                con.Open();
                OleDbDataReader reader = command.ExecuteReader();
                listBox1.Items.Clear();
                while (reader.Read())
                {
                    listBox1.Items.Add(reader[0].ToString());
                }
                reader.Close();
            }

        }


Я просто пытаюсь получить свою заметку по базе данных и распечатать ее в списке

Что я уже пробовал:

У меня есть еще один проект с другой базой данных (более важной), и в коде не было ошибки, что мне нужно сделать для моего другого проекта, пожалуйста, помогите мне.

<pre lang="c#"> using (OleDbConnection con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=testapp.accdb"))
            {
                OleDbCommand command = new OleDbCommand("SELECT * FROM T_article",con);

                con.Open();
                OleDbDataReader reader = command.ExecuteReader();
                lbxTableau.Items.Clear();
                while (reader.Read())
                {
                    lbxTableau.Items.Add(reader[0].ToString());
                }
                reader.Close();
            }


мне действительно нужно прочитать свою базу данных для моей программы :(

2 Ответов

Рейтинг:
13

F-ES Sitecore

Если вы используете зарезервированные слова для таблиц, вы заключаете их в квадратные скобки, чтобы дать понять, что вы имеете в виду не зарезервированное слово, а таблицу, называемую этим словом.

OleDbCommand command = new OleDbCommand("SELECT * FROM [note]", con);


Member 13951068

Спасибо вам, что это работает :D

Хорошего вам дня :D

Рейтинг:
1

OriginalGriff

"Примечание" - это ключевое слово доступа: Access 2007 зарезервированные слова и символы - доступ[^] - чтобы использовать его в качестве имени таблицы, он должен быть экранирован:

OleDbCommand command = new OleDbCommand("SELECT * FROM [note]", con);