Как правильно писать в базу данных Access (2002-2003) с использованием C # - PullRequest
0 голосов
/ 17 мая 2018

Мне не удается записать новые записи в локальную базу данных Access 2002-2003 (.mdb) с использованием C #, проблема заключается в синтаксисе моего свойства cmdText в OleDbCommand класс.

ПОЖАЛУЙСТА, НЕ упоминайте параметризованные операторы SQL или SQL-инъекцию, поскольку это только для личных тестов

В любом случае, вот текст команды, которую я пытаюсь использовать:

string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Daniel\source\repos\DatabaseInteraction2\DatabaseInteraction2\SimpleDatabase.mdb";

        OleDbCommand command;

        using (OleDbConnection connection = new OleDbConnection(connectionString))
        {
            connection.Open();
            command = new OleDbCommand("Insert Into SimpleTable (userName,userPassword) Values " +
            "('TestUsername','TestPassword')", connection);

            try
            {
                command.ExecuteNonQuery();
            }
            catch(Exception error)
            {
                Console.WriteLine(error.Message
            }
        }

Как правильно выполнять вставки в набор данных Access? Какой синтаксис я должен использовать? Прямо сейчас я попробовал это 6 различными способами, и ни один из них не работал.

Исключения, которые я получаю, немного похожи на следующие:

  • Неизвестные параметры
  • Каталог отсутствует
  • Синтаксическая ошибка в "Вставить в"

1 Ответ

0 голосов
/ 17 мая 2018

Ваш код в основном в порядке (вы пропали); в конце console.writeline). Однако ваша строка подключения неверна. Измените его на ...

string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Daniel\source\repos\DatabaseInteraction2\DatabaseInteraction2\SimpleDatabase.mdb";

Убедитесь, что ваша база данных существует в этом месте. В противном случае это работает просто отлично.

Возможно, вы захотите использовать вместо этого Microsoft.ACE.OLEDB.12.0, поскольку Microsoft.Jet.OLEDB.4.0 является более старым драйвером.

...