Не удается сохранить данные в справке базы данных! - PullRequest
0 голосов
/ 18 июня 2010

У меня есть приложение формы widnows, и я не могу сохранить данные из приложения (текстовые поля) в базе данных (доступ MS). Сохраненные данные видны в приложении, но если я открою базу данных, ее там нет ... поэтому, если я открою базу данных и перезапущу приложение формы, я не вижу ранее вставленные данные.

 string conString = "Provider=Microsoft.Jet.OLEDB.4.0;"
         + " Data Source=save.mdb";


            OleDbConnection empConnection = new OleDbConnection(conString);


            string insertStatement = "INSERT INTO zivila "
                                 + "([naziv]) "
                                 + "VALUES (@naziv)";

            OleDbCommand insertCommand = new OleDbCommand(insertStatement, empConnection);

            insertCommand.Parameters.Add("@naziv", OleDbType.Char).Value = textBox1.Text;

            try
            {
                empConnection.Open();
                int count = insertCommand.ExecuteNonQuery();
                empConnection.Close();
            }
            catch (OleDbException ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {

                textBox1.Clear();

Ответы [ 3 ]

4 голосов
/ 18 июня 2010

Я думаю, вам не хватает квадратной скобки ]

0 голосов
/ 05 октября 2017

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

Я согласенс @tomfanning, что Access не поддерживает именованные параметры, и вместо него следует использовать вопросительный знак.

0 голосов
/ 22 июля 2011

OleDb, похоже, не поддерживает именованные параметры.

С здесь :

Поставщик данных OLE DB.NET Framework использует позиционные параметры, помеченныезнак вопроса (?) вместо именованных параметров.

Это может дать вам то, что вы хотите:

string insertStatement = "INSERT INTO zivila ([naziv]) VALUES (?)";
// snip
insertCommand.Parameters.Add("@p1", OleDbType.Char, 255).Value = textBox1.Text;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...