На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Ошибка при изменении записи
    Код
    ExpandedWrap disabled
      private void bindingNavigatorSaveItem_Click(object sender, EventArgs e
      {
         OleDbParameter p;
         // insert
         string strIns = "INSERT INTO tbl1(id, txt) VALUES (?, ?)";
         OleDbCommand insertCmd = new OleDbCommand(strIns, con);
         da.InsertCommand = insertCmd;
         p = new OleDbParameter("@id", OleDbType.Integer);
         p.SourceColumn = "id";
         p.SourceVersion = DataRowVersion.Original;
         insertCmd.Parameters.Add(p);
         p = new OleDbParameter("@txt", OleDbType.VarChar);
         p.SourceColumn = "txt";
         p.SourceVersion = DataRowVersion.Original;
         insertCmd.Parameters.Add(p);
        // update
         string strUpd = "UPDATE tbl1 SET id = ?, txt = ?";
          //string strUpd = "UPDATE tbl1 SET txt = ?";
         OleDbCommand updateCmd = new OleDbCommand(strUpd, con);
         da.UpdateCommand = updateCmd;
         p = new OleDbParameter("@id", OleDbType.Integer);
         p.SourceColumn = "id";
         p.SourceVersion = DataRowVersion.Original;
         updateCmd.Parameters.Add(p);
         p = new OleDbParameter("@txt", OleDbType.VarChar);
         p.SourceColumn = "txt";
         p.SourceVersion = DataRowVersion.Original;
         updateCmd.Parameters.Add(p);
         // delete
         string strDel = "DELETE FROM tbl1 WHERE id = ? AND txt = ?";
         OleDbCommand deleteCmd = new OleDbCommand(strDel, con);
         da.DeleteCommand = deleteCmd;
         p = new OleDbParameter("@id", OleDbType.Integer);
         p.SourceColumn = "id";
         p.SourceVersion = DataRowVersion.Original;
         deleteCmd.Parameters.Add(p);
         p = new OleDbParameter("@txt", OleDbType.VarChar);
         p.SourceColumn = "txt";
         p.SourceVersion = DataRowVersion.Original;
         deleteCmd.Parameters.Add(p);
         da.Update(ds.Tables[0]);
      }
    дает возможность сохранить в базе mdb новые записи. Но не получается update. При изменении поля txt и попытке записи получаю "Невозможно обновить поле 'id'; не обновляемое поле". Подскажите, пожалуйста, как исправить эту ошибку.Проект прикрепляю
    Прикреплённый файлПрикреплённый файлAdoNet2.zip (29,26 Кбайт, скачиваний: 117)
      ExpandedWrap disabled
        // update
        string strUpd = "UPDATE tbl1 SET txt = ? WHERE id = ?";
        //string strUpd = "UPDATE tbl1 SET txt = ?";
        OleDbCommand updateCmd = new OleDbCommand(strUpd, con);
        da.UpdateCommand = updateCmd;
        p = new OleDbParameter("@txt", OleDbType.VarChar);
        p.SourceColumn = "txt";
        p.SourceVersion = DataRowVersion.Original;
        updateCmd.Parameters.Add(p);
        p = new OleDbParameter("@id", OleDbType.Integer);
        p.SourceColumn = "id";
        p.SourceVersion = DataRowVersion.Original;
        updateCmd.Parameters.Add(p);
        Спасибо большое, получилось.
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0258 ]   [ 18 queries used ]   [ Generated: 6.05.24, 19:46 GMT ]