у меня проблема немного другого характера.
имеется dataset и 2 таблицы в нем.
происходит загрузка 2 таблиц из MS Access, связка , редактирование. но при попытке сохранить изменения вылетает ошибка "для обеспечения целостности данных необходима связная запись в таблице N_PODR"
Код | public DataSet ds = new System.Data.DataSet();
/* LOAD DATA FROM PODRAZDELENIYA */ string query = @"SELECT * FROM PODR_TBL ORDER BY id"; this.Podrazd_Adapter = new OleDbDataAdapter(query,conn); this.Podrazd_Adapter.Fill(ds,"PODR_TBL"); this.Podrazd_CommandBuilder = new OleDbCommandBuilder(Podrazd_Adapter); this.Podrazd_CommandBuilder.GetUpdateCommand(); this.Podrazd_CommandBuilder.GetDeleteCommand(); this.Podrazd_CommandBuilder.GetInsertCommand(); ds.Tables["PODR_TBL"].Columns["id"].AutoIncrement = true; ds.Tables["PODR_TBL"].Columns["id"].AutoIncrementStep = 1; ds.Tables["PODR_TBL"].Columns["id"].Unique = true; ds.Tables["PODR_TBL"].PrimaryKey = new DataColumn[]{ds.Tables["PODR_TBL"].Columns["id"]}; /* * * * * * * * * * * * * * * * * * * * LOAD DATA FROM SPISOK LICHNOGO SOSTAVA * * * * * * * * * * * * * * * * * * */ query = @"SELECT id, n_podr, dolzh, mesto_nah, zvanie, familie, imya, otchestvo, adress, phone, n_mar, prib, obyz_vrprib, date_prib, vrem_prib, Opozd, [zvanie]+' '+[familie] as test FROM SPISLS_TBL"; LSostav_Adapter = new OleDbDataAdapter(query,conn); LSostav_Adapter.Fill(ds,"SPISLS_TBL"); string update = @"UPDATE SPISLS_TBL SET n_podr=?, dolzh=?, mesto_nah=?, zvanie=?,"+ @" familie=?, imya=?, otchestvo=?, adress=?, phone=?, n_mar=?,"+ @" prib=?, obyz_vrprib=?, date_prib=?, vrem_prib=?,"+ @" Opozd=? WHERE id=?"; OleDbCommand upcom = new OleDbCommand(update); upcom.Parameters.Add("n_podr",OleDbType.Integer,10,"n_podr"); upcom.Parameters.Add("dolzh",OleDbType.VarChar,100,"dolzh"); upcom.Parameters.Add("mesto_nah",OleDbType.VarChar,100,"mesto_nah"); upcom.Parameters.Add("zvanie",OleDbType.VarChar,100,"zvanie"); upcom.Parameters.Add("familie",OleDbType.VarChar,100,"familie"); upcom.Parameters.Add("imya",OleDbType.VarChar,100,"imya"); upcom.Parameters.Add("otchestvo",OleDbType.VarChar,100,"otchestvo"); upcom.Parameters.Add("adress",OleDbType.VarChar,100,"adress"); upcom.Parameters.Add("phone",OleDbType.VarChar,100,"phone"); upcom.Parameters.Add("n_mar",OleDbType.VarChar,100,"n_mar"); upcom.Parameters.Add("prib",OleDbType.VarChar,100,"prib"); upcom.Parameters.Add("obyz_vrprib",OleDbType.VarChar,100,"obyz_vrprib"); upcom.Parameters.Add("date_prib",OleDbType.VarChar,100,"date_prib"); upcom.Parameters.Add("vrem_prib",OleDbType.VarChar,100,"vrem_prib"); upcom.Parameters.Add("Opozd",OleDbType.VarChar,100,"Opozd"); upcom.Parameters.Add("id",OleDbType.Integer,10,"id"); LSostav_Adapter.UpdateCommand = upcom; LSostav_CB = new OleDbCommandBuilder(LSostav_Adapter); LSostav_CB.GetDeleteCommand(); LSostav_CB.GetInsertCommand(); ds.Tables["SPISLS_TBL"].Columns["id"].AutoIncrement = true; ds.Tables["SPISLS_TBL"].Columns["id"].AutoIncrementStep = 1; ds.Tables["SPISLS_TBL"].Columns["id"].Unique = true; ds.Tables["SPISLS_TBL"].PrimaryKey = new DataColumn[]{ds.Tables["SPISLS_TBL"].Columns["id"]}; ds.Relations.Add("podrazd",ds.Tables["PODR_TBL"].Columns["id"],ds.Tables["SPISLS_TBL"].Columns["n_podr"]);
Podrazd_Adapter.Update(ds,"PODR_TBL"); LSostav_Adapter.Update(ds,"SPISLS_TBL");
|
|