c# sql запрос на вставку данных

342
23 января 2018, 09:01

Есть база данных (access), подключенная к приложению, написанному на winforms. База подключена посредством oleDb:

using System.Data.OleDb;

Есть соединение с БД, всё работает:

string ConnStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=P:\Database\DB\database.mdb";
    OleDbConnection oleDbConn;

OleDbCommand oleComm;
        OleDbDataReader oleRead;
 oleDbConn = new OleDbConnection(ConnStr); //инициируем соединение 
        oleDbConn.Open(); 

Далее делал запрос на выборку, сам запрос подгружался из txt файла:

private void button10_Click(object sender, EventArgs e) //
    {
     try
        {
            string path = @"P:\Database\DB2018\test.txt";
            string s = File.ReadLines(path, Encoding.GetEncoding(1251)).Skip(0).First(); //Encoding.GetEncoding(1251) чтобы не было знаков вопроса вместо кириллицы
            MessageBox.Show(s);
            textBox2.Text = s;
            //
            DataSet ds2 = new DataSet();
           OleDbDataAdapter da2 = new OleDbDataAdapter(s, oleDbConn);
            da2.Fill(ds2, "Spectr");
            dataGridView1.DataSource = ds2.Tables[0];
        }
        catch (Exception d)  
{
    Console.WriteLine(d.Message);
}
}

Всё работает, запрос выводится корректно. Хочу по аналогии сделать запрос на вставку данных:

 private void button10_Click(object sender, EventArgs e) //
    {
       try
        {
            string path = @"P:\Database\DB2018\test.txt";
            string s = File.ReadLines(path, Encoding.GetEncoding(1251)).Skip(3).First(); //Encoding.GetEncoding(1251) чтобы не было знаков вопроса вместо кириллицы
            MessageBox.Show(s);
            textBox2.Text = s;
            oleComm = new OleDbCommand(s, oleDbConn);
            oleComm.ExecuteNonQuery();

        }
        catch (Exception d) // ловит исключения
        {
            Console.WriteLine(d.Message);
        }
    }

Соответственно ничего не происходит, данные в таблице не обновляются. Подскажите, где может быть ошибка.

Запрос из txt файла: INSERT INTO График VALUES (NULL, P:\SPECTR\Database\схема.png, 3, 5);

Answer 1

В запросе из txt файла:

INSERT INTO График VALUES (NULL, P:\SPECTR\Database\схема.png, 3, 5); 

нужно писать вместо "NULL" число или указывать столбцы, в которых будут производится изменения для автоматического увеличения счётчика:

INSERT INTO График (График_ссылка, Частота_макс, Частота_мин) VALUES ('P:\SPECTR\Database\схема.png', 3, 5); 
READ ALSO
Как реализовать слайд на asp.net mvc?

Как реализовать слайд на asp.net mvc?

Добрый деньCrud операции с EF или Ado у меня получаются

290
Ошибка при запуске Web службы C#

Ошибка при запуске Web службы C#

При запуске веб-сервиса на локальной, возникает ошибка

296
Нарисовать много фигур на Canvas WPF NetFramework 3.5

Нарисовать много фигур на Canvas WPF NetFramework 3.5

Вывожу не Canvas много цветных квадратов (10000) Прохожу в цикле:

262
Stack, Heap на уровне железа

Stack, Heap на уровне железа

Хочу прояснить ситуацию про хранение и обработку данных в виде стека и хипаНе могу уложить в уме, как работает данная система на уровне железа

290