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

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

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

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

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

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

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

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

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

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

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

"PrimaryKey в dataTable" ?

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

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

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

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

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

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

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

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

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

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


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