Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > Вопрос про update в mdb


Автор: Landing 16.6.2010, 13:49
Не работает обновление записи, если в запросе есть 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(); }
        }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)