Не работает обновление записи, если в запросе есть WHERE. Без WHERE работает, но так ненадо. Что делать? Ошибка: "Нарушение параллелизма: UpdateCommand затронула 0 из ожидаемых 1 записей."
Код | public void UpdateCard(string[] newData) { StringBuilder query = new StringBuilder(); query.Append(string.Format("SELECT * FROM СправочникУчастников WHERE КодУчастника = '{0}' AND ТабельныйНомер = '{1}' ", newData[0], newData[1])); ListTable = new DataTable(); try { cmd = new OleDbDataAdapter(query.ToString(), conn); //cmd.MissingSchemaAction = MissingSchemaAction.AddWithKey; //conn.Open(); cmd.Fill(ListTable); if (ListTable.Rows.Count > 0) { DataRow row = ListTable.Rows[0]; row.BeginEdit(); row["ФИО"] = newData[2]; row.EndEdit(); cmd.UpdateCommand = new OleDbCommand("UPDATE СправочникУчастников SET ФИО = @ФИО WHERE КодУчастника = @КодУчастника", conn); cmd.UpdateCommand.Parameters.Add("@КодУчастника", OleDbType.VarChar, 0, "КодУчастника").Value=""; //cmd.UpdateCommand.Parameters.Add("@ТабельныйНомер", OleDbType.VarChar, 0, "ТабельныйНомер").Value = ""; cmd.UpdateCommand.Parameters.Add("@ФИО", OleDbType.VarChar, 0, "ФИО").Value = ""; cmd.Update(ListTable); } } catch (OleDbException exp) { MessageBox.Show(exp.Message, "Ошибка подключения", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { conn.Close(); } }
|
|