Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 15.06.2012, 07:52   #1
igemon
 
Регистрация: 01.12.2010
Сообщений: 4
Репутация: 10
Печаль C# и MS SQL и DataSet

Добрый день! У меня имеется программа на C# и БД. К проекту я её подключаю с помощью bindingSource, через мастер настройки источника данных. Подключение идет не просто к файлу с БД, а к всему Sql серверу.
В конце работы мастера создается DataSet. Проблема заключается в том, что при изменении структуры БД через MS SMS(добавление таблицы,столбца, изменение атрибутов) программа перестает работать с DataSet и приходится заного через мастер создавать подключение, при этом меняя половину кода.

Как можно сделать чтоб DataSet сам обновлялся, или нужно что-то поменять в настройках подключения?
igemon вне форума   Ответить с цитированием
Старый 15.06.2012, 13:20   #2
muradov
Пользователь
 
Регистрация: 05.05.2012
Адрес: Копейск
Сообщений: 39
Репутация: 14
По умолчанию

Тут ничего сделать, к сожалению, нельзя.
Попробуй использовать Entity Framework Code First, если это, конечно, подходит к твоей задаче. С использованием Code First задача развернется в "смена кода -> смена схемы базы".
muradov вне форума   Ответить с цитированием
Старый 15.06.2012, 22:33   #3
yaapelsinko
Форумчанин
 
Регистрация: 15.01.2012
Сообщений: 67
Репутация: 10
По умолчанию

Ты как-то странно его задаёшь, что приходится половину кода менять.
Обычный запрос "select то-то, сё-то from там-то" всегда вернёт тебе то-то и сё-то оттуда-то, лишь бы они были в базе.

Если ты вручную делаешь там в коде колонки, которые потом заполняешь, указывая конкретно, в какую колонку что из базы пихать - это неправильно.

Давно отработанная схема - Коннекшын + Запрос. В делфях можно было потом сразу с запросом и работать, так как он сам себе датасет был. Здесь можно делать так:

SqlConnection conn = new SqlConnection("строка подключения");
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = new SqlCommand("запрос", conn);
adapter.Fill(dataset);

Датасет потом пихаешь в таблицу. Как видно, этому коду до лампочки, какая там
структура в базе. Всё будет зависеть от запроса.

Можно работать "по-пхпшному":

Connection = new SqlConnection("строка подключения");
Command = new SqlCommand("запрос", Connection);
SqlDataReader reader = Command.ExecuteReader();

В лице ридера получишь структуру данных, которую можно (и нужно) построчно while (reader.Read()), а там обращаться по имени поля в запросе: reader["Поле1"] и т.д.
yaapelsinko вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать чтобы Dataset без SQL считал себя не read-only ? delphicoding БД в Delphi 12 23.03.2012 22:22
Строку из одного DataSet в другой DataSet Abbath1349 Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 0 22.05.2011 19:26
ADO.NET: Команды SQL при работе с DataSet PousheeITancuushee Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 0 24.09.2010 22:25
Из DataSet работающего по циклу в DataSet maroder22 БД в Delphi 1 05.09.2010 23:22
sql server+delph,при попытке сохранить базу в дельфи выдает ошибку adotable dataset not in edit or insert betirsolt БД в Delphi 3 07.05.2010 21:44


08:12.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru