Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / по обновлению данных / 13 сообщений из 13, страница 1 из 1
12.10.2004, 15:02
    #32734248
Mikhail Eremkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
по обновлению данных
Как я понял метод Fill sqldataadpter заполняет нужную нам таблицу которая описана как DataTable. Метод Update синхронизирует измения с Table и источником данных (например SQL server).
Вопрос заключается в следующем: как внесенные изменения на SQL servere (источнике данных) поместить в таблицу. метод Update это не выполняет.

Правильно ли я думаю, что придется полностью стирать все содержимое таблицы и заново вызывать метод Fill sqldataadapter?
...
Рейтинг: 0 / 0
12.10.2004, 15:35
    #32734349
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
по обновлению данных
Непонятен вопрос:
Структура такова, что данные из БД сперва попадают в DataSet (Fill), там мы их изменяем (если необходимо), добавляем и т.д. Потм Update синхронизирует данные с БД, а мы продолжаем работать с нашим DataSet и повторный Fill не нужен. Тогда, где проблема???
Может вопрос о том, что в БД таблица изменилась другим пользователем в то время как Вы работали с DataSet???
...
Рейтинг: 0 / 0
13.10.2004, 06:28
    #32735226
Mikhail Eremkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
по обновлению данных
да именно в этом и состоит вопрос.
...
Рейтинг: 0 / 0
13.10.2004, 06:41
    #32735234
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
по обновлению данных
Вопрос заключается в следующем: как внесенные изменения на SQL servere (источнике данных) поместить в таблицу. метод Update это не выполняет.

Внесенные кем ? И как?


Правильно ли я думаю, что придется полностью стирать все содержимое
таблицы и заново вызывать метод Fill sqldataadapter?

Можно ответить и да и нет. Если данные внесенны не вами (не из вашего приложения), то можно стереть данные и заново их залить в DataSet например при помощи Fill.
Как альтернатива, можете написать свою процедуру которая будет осуществляет синхронизацию данных находящихся в DataSet и в БД.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
13.10.2004, 07:22
    #32735251
Mikhail Eremkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
по обновлению данных
вот упрощенная задача.

есть 2 таблицы на SQL-server

Country: ID, NAME
City: ID, NAME, IDcountry

на главной форме показано представление, составленное на SQL server, в котором отображено соответсвие стран и городов, т.е. в какой стране находится готод.

Так же на форме есть 2 кнопки: "новый город", "редактировать город". принажатии вызывается форма для редактирования города. Изменяем значения ID, NAME, IDcountry и записываем из на SQL. Как теперь обновить DataGrid на основной форме.
...
Рейтинг: 0 / 0
13.10.2004, 07:34
    #32735258
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
по обновлению данных
При редактировании города Вы вызываете тот же DataSet или создаётся новый?
Если новый - то, вполне понятно, что старый нужно будет очистить и заполнить обновлёнными данными...
...
Рейтинг: 0 / 0
13.10.2004, 07:39
    #32735263
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
по обновлению данных
к же на форме есть 2 кнопки: "новый город", "редактировать город". принажатии вызывается форма для редактирования города. Изменяем значения ID, NAME, IDcountry и записываем из на SQL.

С каким DataSet вы работаете в этой форме и как записываете в БД?

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
13.10.2004, 07:40
    #32735264
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
по обновлению данных
Если новый - то, вполне понятно, что старый нужно будет очистить и заполнить обновлёнными данными...

Старый и новый можно слить при помощи Merge.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
13.10.2004, 07:43
    #32735268
Mikhail Eremkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
по обновлению данных
я заполняю 2 таблицы в DataSet,

1. можно ли в DataGrid отобразить следующую структуру:

SELECT Country.NAME, City.NAME FROM Country INNER JOIN City ON City.IDCountry = Country.ID.

2. есть ли в dataSet, что-то вроде "динамической таблицы", которая представляет собой представление 2-х и более таблиц (вроде View на SQL.)
...
Рейтинг: 0 / 0
13.10.2004, 07:46
    #32735270
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
по обновлению данных
To Sa:
Код: plaintext
1.
Старый и новый можно слить при помощи Merge.

Можно поподробнее, для меня это актуально...
...
Рейтинг: 0 / 0
13.10.2004, 08:00
    #32735281
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
по обновлению данных
я заполняю 2 таблицы в DataSet,
1. можно ли в DataGrid отобразить следующую структуру:
SELECT Country.NAME, City.NAME FROM Country INNER JOIN City ON City.IDCountry = Country.ID.

Можно, но это будет одна таблица в DataSet.

2. есть ли в dataSet, что-то вроде "динамической таблицы", которая представляет собой представление 2-х и более таблиц (вроде View на SQL.)

Существует возможность использования expression-based column:
Порядок примерно следующий:
Опряделяем DataRelation между двумя таблицами.
В одну из таблиц добавляем expression column "выдергивающие" значения полей из другой таблицы.
см. поиск по этого форуму и форуму ADO.NET

Можно поподробнее, для меня это актуально...

Код: plaintext
1.
oldDataSet.Merge(newDataSet)

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
14.10.2004, 12:35
    #32738079
Mikhail Eremkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
по обновлению данных
я заполняю 2 таблицы в DataSet,
1. можно ли в DataGrid отобразить следующую структуру:
SELECT Country.NAME, City.NAME FROM Country INNER JOIN City ON City.IDCountry = Country.ID.
Можно, но это будет одна таблица в DataSet.
можно подробнее как это сделать?

Существует возможность использования expression-based column:
Порядок примерно следующий:
Опряделяем DataRelation между двумя таблицами.
В одну из таблиц добавляем expression column "выдергивающие" значения полей из другой таблицы.
см. поиск по этого форуму и форуму ADO.NET
В данном случае нельзя реализовать отношение один ко многим.
...
Рейтинг: 0 / 0
17.10.2004, 15:02
    #32741758
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
по обновлению данных
можно подробнее как это сделать?

Например:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Dim cmd as new Data.SqlClient.SqlCommand
cmd.Connection = bla-bla-bla
cmd.CommandText = "SELECT country_name = Country.NAME, city_name = City.NAME FROM Country INNER JOIN City ON City.IDCountry = Country.ID"
Dim da As New Data.SqlClient.SqlDataAdapter(cmd)
Dim ds As New DataSet  ' например создаем новый DataSet 
ds.Clear()
da.TableMappings.Add("Table", "MyJoinedTable")
da.Fill(ds)
MsgBox(ds.Tables("MyJoinedTable").Rows.Count)  ' кол-во записей в полученной таблице 
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / по обновлению данных / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]