Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

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

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

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

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

Ты как-то странно его задаёшь, что приходится половину кода менять.
Обычный запрос "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 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать чтобы 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