Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Supernatural
606 / 205 / 48
Регистрация: 22.11.2010
Сообщений: 1,639
Записей в блоге: 2
Завершенные тесты: 2
1

Ошибка при вставке значения

25.05.2017, 22:54. Просмотров 392. Ответов 11
Метки нет (Все метки)

Всем привет! При каждой попытке выполнить код происходить необр. исключение на строке cmd.ExecuteNonQuery(); Таблица состоит из 2 столбцов Код и Причина_поломки. Поле Код - ключевое поле с типом счетчик.
C#
1
2
3
4
5
6
7
8
String title = textBox2.Text;
            string sqlcmd = "insert into Диагностика неисправностей (Причина_поломки) Values ('"+title+"')";
            String cs = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = Сервис-центр.mdb";
            OleDbCommand cmd = new OleDbCommand(sqlcmd);
            OleDbConnection c = new OleDbConnection(cs);
            c.Open();
            cmd.Connection = c;
            cmd.ExecuteNonQuery();
Что я пропустил или не правильно написал?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2017, 22:54
Ответы с готовыми решениями:

Ошибка при вставке данных в Access
Имеется база данных на Access. В нескольких таблицах имеется столбец Year. Для работы с базой...

DateTimePicker1 при вставке в Sql запрос выходит ошибка
при выборе даты (в основном) выходит ошибка. Видимо ошибка с форматом даты, но не пойму где. ...

linq to sql - Ошибка при вставке
есть метод для вставки: public void InsertCart(Cart cart) { Table<Cart> newCart =...

Кодировка при вставке в базу mysql
есть код: using (MySqlConnection c = new MySqlConnection(connectionString)) { ...

Syntax Error при вставке в dbf
есть задача: перетянуть данные с SQL server в DBF. выполняем процедуру. получаем данные и через...

11
OwenGlendower
Супер-модератор
Эксперт .NET
10448 / 8995 / 3842
Регистрация: 17.03.2014
Сообщений: 18,072
Записей в блоге: 1
25.05.2017, 23:15 2
Supernatural, имя таблицы содержит пробел, поэтому его нужно заключить в квадратные скобки. Плюс очень рекомендую использовать параметры в запросах (для безопасности):
C#
1
2
3
4
5
6
7
8
9
10
string title = textBox2.Text;
 
const string cs = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = Сервис-центр.mdb";
using (OleDbConnection c = new OleDbConnection(cs))
{
    OleDbCommand cmd = new OleDbCommand("INSERT INTO [Диагностика неисправностей] (Причина_поломки) VALUES ('?')", c);
    cmd.Parameters.AddWithValue("?", title);
    c.Open();
    cmd.ExecuteNonQuery();
}
1
Supernatural
606 / 205 / 48
Регистрация: 22.11.2010
Сообщений: 1,639
Записей в блоге: 2
Завершенные тесты: 2
25.05.2017, 23:23  [ТС] 3
OwenGlendower, не сработал запрос. Для чего using в строке 4?
0
OwenGlendower
Супер-модератор
Эксперт .NET
10448 / 8995 / 3842
Регистрация: 17.03.2014
Сообщений: 18,072
Записей в блоге: 1
25.05.2017, 23:30 4
Цитата Сообщение от Supernatural Посмотреть сообщение
не сработал запрос.
Точно? Я вносил исправления в него после отправки. Убедись что ты точно используешь текущую версию. Если да, то выложил полный текст ошибки.

Цитата Сообщение от Supernatural Посмотреть сообщение
Для чего using в строке 4?
Для гарантированного закрытия соединения.
0
Supernatural
606 / 205 / 48
Регистрация: 22.11.2010
Сообщений: 1,639
Записей в блоге: 2
Завершенные тесты: 2
25.05.2017, 23:34  [ТС] 5
OwenGlendower, ошибки нет никакой. Я нажимаю кнопку и все, ни ошибок, ни исключений. Я специально завершаю программу и открываю базу в аксесе.
0
OwenGlendower
Супер-модератор
Эксперт .NET
10448 / 8995 / 3842
Регистрация: 17.03.2014
Сообщений: 18,072
Записей в блоге: 1
25.05.2017, 23:39 6
Supernatural, значит INSERT проходит. Может ты не в том Access файле смотришь? Классическая ошибка это включить mdb файл в проект, настроить его копирование в выходной каталог, забыть про это и смотреть после исполнения файл который включен в проект вместо файла в выходном каталоге.
0
Supernatural
606 / 205 / 48
Регистрация: 22.11.2010
Сообщений: 1,639
Записей в блоге: 2
Завершенные тесты: 2
26.05.2017, 00:08  [ТС] 7
OwenGlendower, про этот трюк я знаю, то есть при создании набора данных студия выдает сообщение, что может быть создана копия файла данных->я соглашаюсь->создается копия непосредственно в каталоге проекта. Оттуда и считываются данные на форму.

Добавлено через 22 минуты
Указал абсолютный путь и сработало, но осталось научить программу работать с относительной ссылкой. Исходя от чего программа берет базовый адрес?
0
Shogun31337
539 / 519 / 222
Регистрация: 02.11.2016
Сообщений: 1,538
Завершенные тесты: 2
26.05.2017, 00:14 8
Цитата Сообщение от Supernatural Посмотреть сообщение
Исходя от чего программа берет базовый адрес?
При использовании относительной ссылки, начальный каталог тот в котором находится исполняемый файл программы. Если экзешник и файл базы, к примеру, находятся в одной папке, то достаточно указания только имени файла в ссылке.
0
Supernatural
606 / 205 / 48
Регистрация: 22.11.2010
Сообщений: 1,639
Записей в блоге: 2
Завершенные тесты: 2
26.05.2017, 00:16  [ТС] 9
Shogun31337, уже пробовал, меня далеко послали )))
0
Shogun31337
539 / 519 / 222
Регистрация: 02.11.2016
Сообщений: 1,538
Завершенные тесты: 2
26.05.2017, 00:20 10
Цитата Сообщение от Supernatural Посмотреть сообщение
уже пробовал, меня далеко послали )))
Вообще, странно... Должно работать! Ну, попробуйте добавлять Directory.GetCurrentDirectory() в путь к БД.

Добавлено через 1 минуту
что то типа вот этого: string pathToData = Path.Combine(Directory.GetCurrentDirectory(), "FileName");
1
OwenGlendower
Супер-модератор
Эксперт .NET
10448 / 8995 / 3842
Регистрация: 17.03.2014
Сообщений: 18,072
Записей в блоге: 1
26.05.2017, 00:23 11
Цитата Сообщение от Shogun31337 Посмотреть сообщение
Directory.GetCurrentDirectory()
Только не CurrentDirectory. Он может подвести
http://www.cyberforum.ru/post8862983.html
2
Shogun31337
539 / 519 / 222
Регистрация: 02.11.2016
Сообщений: 1,538
Завершенные тесты: 2
26.05.2017, 00:38 12
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Только не CurrentDirectory. Он может подвести
Спасибо за замечание! Не знал!
0
26.05.2017, 00:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2017, 00:38

Что я делаю не так при вставке в БД значений?
Не могу понять, что делаю не так? Данные в БД не заносятся! namespace TEST_DB { public...

Непонятное исключение при вставке в базу данных
Проблема заключается в следующем, вылазит при попытке вставки в БД, используя MS SQL 2008 Express,...

При вставке Html через documentText ломается js
Проблема вот в чём: получаю html загруженной в webBrowser странички, редактирую его и вставляю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru