![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 01.12.2010
Сообщений: 4
|
![]()
Добрый день! У меня имеется программа на C# и БД. К проекту я её подключаю с помощью bindingSource, через мастер настройки источника данных. Подключение идет не просто к файлу с БД, а к всему Sql серверу.
В конце работы мастера создается DataSet. Проблема заключается в том, что при изменении структуры БД через MS SMS(добавление таблицы,столбца, изменение атрибутов) программа перестает работать с DataSet и приходится заного через мастер создавать подключение, при этом меняя половину кода ![]() Как можно сделать чтоб DataSet сам обновлялся, или нужно что-то поменять в настройках подключения? |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 05.05.2012
Сообщений: 39
|
![]()
Тут ничего сделать, к сожалению, нельзя.
Попробуй использовать Entity Framework Code First, если это, конечно, подходит к твоей задаче. С использованием Code First задача развернется в "смена кода -> смена схемы базы". |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 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"] и т.д. |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как сделать чтобы 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 |