powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Ошибка "Dynamic sql generation failed. No key information found."
2 сообщений из 2, страница 1 из 1
Ошибка "Dynamic sql generation failed. No key information found."
    #38950774
fcdk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть Visual Studio 2010 Ultimate, БД Oracle 11g на виртуалке и клиент на соурс машине (версии 11.2.0.1.0 и клиент, и БД).
Хочу обновить представление в БД. Для таблицы делаю так, все нормально.
Вывожу в грид:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
OracleCommand cmd = new OracleCommand("SELECT ID_TEAM,TEAM_NAME AS Назва,COUNTRY AS Країна,CITY AS                Місто,OFFICE_PHONE       AS Телефон_офісу FROM max.team", conect.con);
        oda = new OracleDataAdapter();
        oda.SelectCommand = cmd;
        oda.SelectCommand.CommandType = CommandType.Text;
        bild = new OracleCommandBuilder(oda);
        oda.Fill(ds);
        if (ds.Tables.Count > 0)
        {
          dataGridView1.DataSource = ds.Tables[0].DefaultView;
          dataGridView1.Columns[0].Visible = false;
        }


Сохраняю обновление по кнопке:
Код: c#
1.
2.
3.
4.
oda.Update(ds);
        OracleCommand cmd = new OracleCommand("COMMIT", conect.con);
        cmd.ExecuteNonQuery();
        cmd.Dispose();


Удаляю по кнопке:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 for (int i = 0; i < dataGridView1.RowCount; i++)
      {
        bool t = true;
        for (int j = 1; j < dataGridView1.ColumnCount; j++)
        {
          if (!dataGridView1[j, i].Selected)
            t = false;
        }
        if (t) dataGridView1.Rows.RemoveAt(i);
      }


Когда таблица в запросе, то все нормально, могу при вставке вводить NULL в ID_TEAM (есть триггер, который генерит id), удалять и редактировать. Если же написать в SELECT представление (у которого есть триггеры INSTEAD OF на вставку, удаление и обновление), то могу добавлять, но когда редактирую или удаляю, вылетает ошибка: Dynamic sql generation failed. No key information found. Если искусственно задать id как один из столбцов, то оно уже не даст вставить NULL при добавлении, но при этом работает удаление и редактирование.
...
Рейтинг: 0 / 0
Ошибка "Dynamic sql generation failed. No key information found."
    #38950856
fcdk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пошел по пути создание своей команды update. Так пропала ошибка при редактировании, но я не могу правильно инициализировать параметры в запросе. Делаю так: (понимаю, что неправильно, ибо не работает)
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
OracleCommand upd = new OracleCommand("UPDATE adm_potential_footballer SET SURNAME=:SURNAME, NAME=:NAME, PATRONYMIC=:PATRONYMIC, DATE_OF_BIRTH=:DATE_OF_BIRTH,ROLE=:ROLE,NATIONALITY=:NATIONALITY,WORKING_LEG=:WORKING_LEG, GROWTH_SM=:GROWTH_SM, WEIGHT_KG=:WEIGHT_KG, RATABLE_VALUE=:RATABLE_VALUE, ID_CURRENT_TEAM=:ID_CURRENT_TEAM, TEAM_NAME=:TEAM_NAME WHERE ID_FOOTBALLER=:ID_FOOTBALLER", conect.con);

        oda = new OracleDataAdapter();
        oda.UpdateCommand = upd;
        oda.UpdateCommand.CommandType = CommandType.Text;

        upd.Parameters.Add(new OracleParameter("SURNAME", dataGridView1.Columns[1]));
        //остальные так же...


Мне нужно инициализировать параметры строками из грида. Или как правильно?
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Ошибка "Dynamic sql generation failed. No key information found."
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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