Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / sqlcommandbuilder не обновляет таблицу без ключевого поля / 23 сообщений из 23, страница 1 из 1
26.02.2016, 19:45
    #39180189
lex452
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcommandbuilder не обновляет таблицу без ключевого поля
Подгружаю данные в через
dataAdapter.Fill(dataset,dataTable),
создаю
sqlcommandbuilder(dataAdapter).

Меняю данные в gridview и при попытке dataadapter.Update, выскакивает ошибка типа невозможно сделать Update для таблицы без ключевого столбца. В таблице есть один столбец, который всегда уникальный, но он не ключевой. После заливки данных я делал его ключом dataTable.PrimaryKey=new DataColumn[] { 'уникальный столбец' }.
Но все равно вываливается исключение, подскажите как возможно сделать update таблицы без ключевого поля.

P.S. Не нужно совета типа сделай его ключом на SQL Server, это в моем случае не возможно.
...
Рейтинг: 0 / 0
26.02.2016, 20:40
    #39180237
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcommandbuilder не обновляет таблицу без ключевого поля
lex452, используя sqlcommandbuilder без PrimaryKey сделать update или delete нельзя.
...
Рейтинг: 0 / 0
26.02.2016, 21:00
    #39180251
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcommandbuilder не обновляет таблицу без ключевого поля
ну если ключевой столбец есть, в чем проблема добавить его в запрос и просто не отображать на экране?
...
Рейтинг: 0 / 0
26.02.2016, 21:52
    #39180285
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcommandbuilder не обновляет таблицу без ключевого поля
Axeleronlex452, используя sqlcommandbuilder без PrimaryKey сделать update или delete нельзя.
значит SqlDataAdapter.UpdateCommand свою задать нужно
...
Рейтинг: 0 / 0
26.02.2016, 22:02
    #39180292
lex452
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcommandbuilder не обновляет таблицу без ключевого поля
Roman Mejtes,

Ключевого столбца нет, есть столбец с уникальными данными, но он не определен как ключевой
...
Рейтинг: 0 / 0
26.02.2016, 22:04
    #39180295
lex452
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcommandbuilder не обновляет таблицу без ключевого поля
Axeleron,

А зачем тогда у datatable tcnm cdjqcndj PrimaryKey, если задав его все равно не работает?
...
Рейтинг: 0 / 0
26.02.2016, 22:04
    #39180296
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcommandbuilder не обновляет таблицу без ключевого поля
lex452Ключевого столбца нет, есть столбец с уникальными данными, но он не определен как ключевой
ну дык сам нарисуй UpdateCommand вместо автогенерённого говнокода
...
Рейтинг: 0 / 0
26.02.2016, 22:09
    #39180299
lex452
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcommandbuilder не обновляет таблицу без ключевого поля
Изопропил,

много разнородных таблиц, это трудоемко. и хотелось бы универсальный метод, на случай добавления новых таблиц в базу. Или я не совсем точно пониманию, что значит нарисовать свой? Можно поконкретнее? Самому прописывать запросы Update для каждой таблицы?
...
Рейтинг: 0 / 0
26.02.2016, 22:41
    #39180311
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcommandbuilder не обновляет таблицу без ключевого поля
Изопропил,

Какие то данные без ключевого поля это уже не нормально, человек не правильно, что то делает.
Нужно выделить эти данные в отдельную сущность ключом которой и будет это "уникальное поле", нафига городить какую то жесть?
можно задать все методы вставки, обновления и т.д. но это лишь усложнит сопровождение кода.
...
Рейтинг: 0 / 0
27.02.2016, 00:48
    #39180356
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcommandbuilder не обновляет таблицу без ключевого поля
lex452много разнородных таблиц
много - это сколько сотен?
и все без первичного ключа?

Roman MejtesКакие то данные без ключевого поля это уже не нормально, человек не правильно, что то делает.
утверждает, что исправить кривые структуры данных - не может ( в первом же посте)
...
Рейтинг: 0 / 0
27.02.2016, 13:13
    #39180485
lex452
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcommandbuilder не обновляет таблицу без ключевого поля
Изопропил,

не сотни конечно, не на столько много, просто есть вероятность что они будут добавляться или меняться. Мне не понятно почему после того как я делаю колонку PrimaryKey в dataTable генератору этого не достаточно((
...
Рейтинг: 0 / 0
27.02.2016, 13:54
    #39180510
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcommandbuilder не обновляет таблицу без ключевого поля
lex452Мне не понятно почему после того как я делаю колонку PrimaryKey в dataTable генератору этого не достаточно
Потому что при автогенерации сведения о ключе беруться из базы
...
Рейтинг: 0 / 0
27.02.2016, 13:55
    #39180513
lex452
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcommandbuilder не обновляет таблицу без ключевого поля
Cat2,

А на кой тогда вообще эта функция?
...
Рейтинг: 0 / 0
27.02.2016, 14:05
    #39180520
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcommandbuilder не обновляет таблицу без ключевого поля
lex452Cat2,

А на кой тогда вообще эта функция?

"PrimaryKey в dataTable" ?

DataTable не эквивалентно таблице в базе. Это - модель. DataTable может быть даже если такой таблицы в базе не существует, например, в ней может отображаться соединение таблиц, причем без создания в базе представления.

DataTable.Find(...) работает только при наличии первичного ключа.

DataUdapter.Fill работает по разному, в зависимости от того указан ли для dataTable первичный ключ
...
Рейтинг: 0 / 0
05.03.2016, 14:55
    #39186422
lex452
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcommandbuilder не обновляет таблицу без ключевого поля
Решил проблему генерацией запросов вручную используя RowState из datatable. Я генерирую запросы INSERT, UPDATE и DELETE без использования SqlParameters (так как таблиц много и хочется прописывать типы колонок для каждой). То есть я делаю запрос в явном виде используя считанные значения измененных ячеек и просто выполняю его на сервере. Они выполняются без проблем.
Получается ситуация что на сервере я данные обновил, в программе статус строк так и остался измененный. Возможно ли изменить статус строки в DataTabe на неизмененная не загружая заново данные с сервера?
...
Рейтинг: 0 / 0
05.03.2016, 15:58
    #39186461
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcommandbuilder не обновляет таблицу без ключевого поля
lex452,

да
...
Рейтинг: 0 / 0
05.03.2016, 16:00
    #39186462
lex452
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcommandbuilder не обновляет таблицу без ключевого поля
ViPRos,

Как?
...
Рейтинг: 0 / 0
05.03.2016, 16:13
    #39186467
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcommandbuilder не обновляет таблицу без ключевого поля
lex452,

acceptchanges
...
Рейтинг: 0 / 0
05.03.2016, 19:51
    #39186536
lex452
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcommandbuilder не обновляет таблицу без ключевого поля
ViPRos,

Это не то. После вызова этого метода у строк остается их State (удаленная, добавленная и измененная)
...
Рейтинг: 0 / 0
06.03.2016, 20:13
    #39186965
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcommandbuilder не обновляет таблицу без ключевого поля
lex452ViPRos,

Это не то. После вызова этого метода у строк остается их State (удаленная, добавленная и измененная)
не пи..ди
...
Рейтинг: 0 / 0
06.03.2016, 22:12
    #39187001
lex452
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcommandbuilder не обновляет таблицу без ключевого поля
ViPRos,
ты хочешь сказать что я меняю данные в Datatable, потом (допустим) не изменяя их на сервере делая acceptchanges и у строк State становится неизмененные? Я так пробовал это не так
...
Рейтинг: 0 / 0
07.03.2016, 01:46
    #39187038
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcommandbuilder не обновляет таблицу без ключевого поля
lex452,

хреново пробовал
ты хоть документацию иногда читаешь?
...
Рейтинг: 0 / 0
09.03.2016, 12:34
    #39187995
lex452
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcommandbuilder не обновляет таблицу без ключевого поля
ViPRos,

Действительно работает, видно я просто торможу. Спасибо!
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / sqlcommandbuilder не обновляет таблицу без ключевого поля / 23 сообщений из 23, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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