Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
4 / 4 / 1
Регистрация: 21.07.2013
Сообщений: 67

SqlCommandBuilder в LocalDB

09.06.2016, 15:22. Показов 1771. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть такой код, для локальной базы данных.
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
  private void UpdateBase()
        {
           SqlCommandBuilder cmdbl = new SqlCommandBuilder(da);
            da.Update(dt);
            dt.Clear();
            da.Fill(dt);
        }
 
public Form1()
        {
string conStr =
                @"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\dbConditions.mdf;Integrated Security=True";
            try
            {
                SqlConnection connection = new SqlConnection(conStr);
                connection.Open();
 
                string command = "SELECT * FROM tbConditions2";
                da = new SqlDataAdapter(command, conStr);
                dt = new DataTable();
                da.Fill(dt);
                dataGridView1.DataSource = dt;
 
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ошибка подключения к Базе данных", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
     }
 
private void button4_Click(object sender, EventArgs e)
        {
            try
            {
                UpdateBase();
            }
            catch
            {
                MessageBox.Show("Не удалось сохранить данные! Че-то пошло не так!.", "Error", MessageBoxButtons.OK,
                    MessageBoxIcon.Error);
            }
          
        }
Подключение проходит нормально, датагрид заполняется, но изменений в БД не происходит.
Что самое интересное, тот же самый код спокойно вносит изменения в удаленную БД(естественно с другой строкой подключения)
Есть ли разница в da.Update(dt) для локальной и для удаленной БД? Что я делаю нет так?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.06.2016, 15:22
Ответы с готовыми решениями:

Работа с SqlCommandBuilder
Здравствуйте, уважаемое сообщество! Хочу спросить о применении SqlCommandBuilder. Проблема заключается в том, что после обновления...

SQLCommandBuilder провоцирует нарушение параллелизма
Добрый день, коллеги. Столкнулся с проблемой записи в базу коллекции таблиц (3-8 штук в одном DataSet). Суть проблемы в том, что при...

Работа с LocalDB
Привет, есть локальная база данных, предполагается работа с ней из консоли (возможно ведь?), где мне найти нормальное руководство по поводу...

6
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
09.06.2016, 16:53
Цитата Сообщение от crn Посмотреть сообщение
но изменений в БД не происходит.
Как вы это определяете?
1
4 / 4 / 1
Регистрация: 21.07.2013
Сообщений: 67
09.06.2016, 16:55  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
Как вы это определяете?
закрываю прогу, открываю, там первоначальные данные. В Server Explorer - Show Data Table тоже первоначальные данные.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
09.06.2016, 16:58
Лучший ответ Сообщение было отмечено crn как решение

Решение

Цитата Сообщение от crn Посмотреть сообщение
закрываю прогу, открываю, там первоначальные данные.
Если у вас файл dbConditions.mdf находится в решении, то ткните по нему в обозревателе проекта и в свойствах установите Copy to output directory на Copy if newer вместо Copy Always.
Подозреваю, что у вас при каждой компиляции этот файл просто перезаписывается свежей копией из папки с проектом.
1
4 / 4 / 1
Регистрация: 21.07.2013
Сообщений: 67
09.06.2016, 17:46  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
Если у вас файл dbConditions.mdf находится в решении, то ткните по нему в обозревателе проекта и в свойствах установите Copy to output directory на Copy if newer.
спасибо, помогло!

Добавлено через 25 минут
Цитата Сообщение от kolorotur Посмотреть сообщение
Подозреваю, что у вас при каждой компиляции этот файл просто перезаписывается свежей копией из папки с проектом.
теперь другая проблема, если заливаю датагрид с переименованием заголовков:
C#
1
string command = "SELECT [ceil] AS Стр, [column] AS Столб, [cond] AS Услов, [value] AS Значение, [mess] AS Сообщение FROM tbConditions2";
то при апдейте таблицы возникает ошибка и ничего не сохраняется, если же делать просто SELECT * FROM tbConditions2 то все апдейтится нормально.

Добавлено через 3 минуты
Цитата Сообщение от crn Посмотреть сообщение
то при апдейте таблицы возникает ошибка и ничего не сохраняется, если же делать просто SELECT * FROM tbConditions2 то все апдейтится нормально.
понял почему такое происходит, я не запрашиваю Id, а вместе с ним все нормально. Но показывать пользователю Id не совсем разумное решение. Можно ли его не отображать визуально в датагрид?

Добавлено через 15 секунд
Цитата Сообщение от crn Посмотреть сообщение
то при апдейте таблицы возникает ошибка и ничего не сохраняется, если же делать просто SELECT * FROM tbConditions2 то все апдейтится нормально.
понял почему такое происходит, я не запрашиваю Id, а вместе с ним все нормально. Но показывать пользователю Id не совсем разумное решение. Можно ли его не отображать визуально в датагрид?
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
09.06.2016, 17:56
Цитата Сообщение от crn Посмотреть сообщение
Можно ли его не отображать визуально в датагрид?
Попробуйте так:
C#
1
2
dataGridView1.DataSource = dt;
dataGridView1.Columns["Id"].Visible = false;
1
4 / 4 / 1
Регистрация: 21.07.2013
Сообщений: 67
09.06.2016, 17:59  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
dataGridView1.Columns["Id"].Visible = false;
точно, забыл совсем про такую возможность)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.06.2016, 17:59
Помогаю со студенческими работами здесь

Запуск localdb
Сервер localdb можно запустить вне студио? Если да, то как?

Кодировка localDB
Создал локальную базу в visual studio и при попытка заполнить ее русским буквами получается так Тип полей стоит text.

Как обратиться к localDB?
Первый раз работаю с локальной бд в проекте. Базу я создал, добавил ее в источники данных, а что дальше не знаю( Как выполнить запрос?...

Запись данных в localDB
Привет интересует вопрос не могу понять как работать с localdb Есть база данных. Создаю текст бокс например имя и кнопку Ок Какой код...

Дополнение строк в LocalDB
SqlConnectionStringBuilder connect = new SqlConnectionStringBuilder(); connect.DataSource = @"(LocalDB)\MSSQLLocalDB"; ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru