Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Белая волчица
1 / 1 / 1
Регистрация: 20.02.2010
Сообщений: 65
1

Не обновляется БД при добавлении записи

19.03.2012, 13:32. Просмотров 2026. Ответов 27
Метки нет (Все метки)

Вот код добавления:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
            try
            {               
                string commandString = @"Insert into dbo.Должности 
                                        Values(@id, 
                                        @name,
                                        @kol_m,
                                        @kol_z_m,
                                        @kol_s_m,
                                        @okl
                                        )";
                conn.Open();
                SqlCommand sqlInsert = new SqlCommand(commandString, conn);
 
                SqlParameter param1 = new SqlParameter(); //объявляем объект класса SqlParameter
                param1.ParameterName = "@id";             //задаем имя параметра
                switch (comboBoxPod.SelectedIndex)       //задаем значение параметра
                {
                    case 0: param1.Value = 8;
                        break;
                    case 1: param1.Value = 5;
                        break;
                    case 2: param1.Value = 14;
                        break;
                    case 3: param1.Value = 6;
                        break;
                    case 4: param1.Value = 4;
                        break;
                    case 5: param1.Value = 1;
                        break;
                    case 6: param1.Value = 3;
                        break;
                    case 7: param1.Value = 10;
                        break;
                    case 8: param1.Value = 12;
                        break;
                    case 9: param1.Value = 13;
                        break;
                    case 10: param1.Value = 7;
                        break;
                    case 11: param1.Value = 9;
                        break;
                    case 12: param1.Value = 11;
                        break;
                    case 13: param1.Value = 2;
                        break;
                }
                param1.SqlDbType = SqlDbType.Int;                //задаем тип параметра
                sqlInsert.Parameters.Add(param1);                //передаем параметр объекту класса SqlCommand
 
                SqlParameter param2 = new SqlParameter();
                param2 = new SqlParameter();
                param2.ParameterName = "@name";
                param2.Value = TBname_dol.Text;
                param2.SqlDbType = SqlDbType.Text;
                sqlInsert.Parameters.Add(param2);
 
                SqlParameter param3 = new SqlParameter();
                param3 = new SqlParameter();
                param3.ParameterName = "@kol_m";
                param3.Value = Convert.ToInt32(TBkol_rm.Text);
                param3.SqlDbType = SqlDbType.Int;
                sqlInsert.Parameters.Add(param3);
 
                SqlParameter param4 = new SqlParameter();
                param4 = new SqlParameter();
                param4.ParameterName = "@kol_z_m";
                param4.Value = 0;
                param4.SqlDbType = SqlDbType.Int;
                sqlInsert.Parameters.Add(param4);
 
                SqlParameter param5 = new SqlParameter();
                param5 = new SqlParameter();
                param5.ParameterName = "@kol_s_m";
                param5.Value = Convert.ToInt32(TBkol_rm.Text);
                param5.SqlDbType = SqlDbType.Int;
                sqlInsert.Parameters.Add(param5);
 
                SqlParameter param6 = new SqlParameter();
                param6 = new SqlParameter();
                param6.ParameterName = "@okl";
                param6.Value = Convert.ToInt32(TB_okl.Text);
                param6.SqlDbType = SqlDbType.Int;
                sqlInsert.Parameters.Add(param6);
 
                sqlInsert.ExecuteNonQuery();                        
                
                adapter.InsertCommand = sqlInsert;
 
                adapter.Update(kadDataSet.Tables["Должности"]);
                kadDataSet.AcceptChanges();
                conn.Close();
                
                MessageBox.Show("Новая должность добавлена!");
                  }
            catch (SqlException ex)
            {
                kadDataSet.RejectChanges();
                MessageBox.Show(ex.Message);
                }
Возможно кривой... В dataGrid измнения есть, а вот в БД совсем никак... Помогите исправить ошибку, пожалуйста.

Добавлено через 12 часов 27 минут
Неужели никто не поможет?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2012, 13:32
Ответы с готовыми решениями:

Ошибка при добавлении записи
Метод, который должен был добавить запись в таблицу: string title =...

Ошибка при добавлении записи
Здравствуйте, нужна консультация! Подключил к проекту в C# базу данных, но при...

Ошибка при добавлении новой записи в БД
Программа для редактивания бд в Access на C# Visual Studio 2015. Ошибка при...

Ошибка при добавлении записи в таблицу
Ребят ситуация в следующем, необходимо создать клиент к базе. И вот почти сразу...

Ошибка при добавлении записи в БД MySQL
Здравствуйте, не знаете в чем причина? Ввожу значения в текстбоксы, и при...

27
Белая волчица
1 / 1 / 1
Регистрация: 20.02.2010
Сообщений: 65
20.03.2012, 00:40  [ТС] 21
Я это все в любом случае перепишу, это черновой вариант а ля "Лишь бы работало" =)

Добавлено через 34 минуты
И все же это похоже на злую шутку. Пересоздала БД, пересоздала проект. Та же песня. В грид добавляется, в Server Explorer не вижу новой записи.

Добавлено через 11 минут
Возможно, я чего-то не понимаю. Запустила exe, добавила пару новых записей. Закрыла, запустила, записи висят. Ради интереса перегрузила комп. Запустила, записи висят. Открыла проект, посмотрела в Server Explorer, записи нет! Запустила программу, запись есть.

Через пару компиляций запись пропала..
0
serg42
118 / 100 / 7
Регистрация: 14.02.2010
Сообщений: 263
20.03.2012, 11:10 22
Цитата Сообщение от Белая волчица Посмотреть сообщение
Возможно, я чего-то не понимаю. Запустила exe, добавила пару новых записей. Закрыла, запустила, записи висят. Ради интереса перегрузила комп. Запустила, записи висят. Открыла проект, посмотрела в Server Explorer, записи нет! Запустила программу, запись есть.
Через пару компиляций запись пропала..
Ну я же написал выше, уберите опцию копирования файла базы в выходную папку.
0
Белая волчица
1 / 1 / 1
Регистрация: 20.02.2010
Сообщений: 65
20.03.2012, 11:38  [ТС] 23
А как это сделать?
0
serg42
118 / 100 / 7
Регистрация: 14.02.2010
Сообщений: 263
20.03.2012, 12:20 24
В окне "обозреватель решений" найдите mdf файл базы, в его свойствах есть этот пункт. А так база копируется в папку bin/debug, bin/release. Здесь нет ошибки, просто имейте ввиду, что работаете Вы именно с той базой, что в папке со скомпеленной прогой.
1
Белая волчица
1 / 1 / 1
Регистрация: 20.02.2010
Сообщений: 65
20.03.2012, 12:51  [ТС] 25
Так, ошибку поняла, в той базе которая находится в bin/debug новые записи прекрастно себе поживают. А работаю я оказывается с той, которая лежит недалеко.. Спасибо Вам))

Ооо, еще один вопрос. Мне необходимо чтобы БД лежала именно в bin/debug. Это теперь переподключать надо?
0
_katon_
384 / 240 / 19
Регистрация: 03.10.2011
Сообщений: 988
20.03.2012, 12:58 26
Чтобы посмотреть с какой базой вы работаете нужно изучить содержимое файла app.exe.config (где app - название проетка). В этом файла должен быть атрибут ConnectionString по которому приложение подключается к файлу БД.
1
Белая волчица
1 / 1 / 1
Регистрация: 20.02.2010
Сообщений: 65
21.03.2012, 00:07  [ТС] 27
Огромное спасибо Вам! Наконец-то разобралась в этом)
0
Learx
1046 / 853 / 194
Регистрация: 31.03.2010
Сообщений: 2,490
21.03.2012, 17:36 28
serg42,
OFFTOP
C#
1
2
3
4
5
6
try
{
using (SqlConnection conn = new SqlConnection()
{
}
} catch (Exception ex) { MessageBox.Show(ex.ToString()); }
Не по теме:

А using разве не перехватит исключение?
Да, using коррекно отлавливает и обрабатывает ошибку, потому у меня нет ни Close() для подключения ни Rollback для транзакции, если её использую, однако в случае ошибки я не вижу сообщения об ошибке, а в отладчике ее ловить сложно. потому и использую try..catch чтоб увидеть ошибку, не знаю как коррекнее это сделать...
0
21.03.2012, 17:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2012, 17:36

UpdateException при добавлении записи в таблицу БД
Делаю форму на добавление с подключенной БД, на основе которой создана EDM...

Отрицательный счетчик при добавлении новой записи
в SQL server указан счетчик +1 для новых записей при этом на добавление в...

Ошибка синтаксиса Insert into при добавлении записи в БД Access
Я работаю на C#. Мне нужно создать в access таблицу Avtobuss. Она не создается...


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

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

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