Не работает Update для таблицы MDB
От: Ramzesito Россия  
Дата: 10.02.10 07:43
Оценка:
Простейшая ситуация: таблица в MDB (customerid, customername), класс с методами обновления, вставки, удаления записей. Запросы осуществляются в коде методов с использованием OleDb.
Почему-то не работает Update с параметрами:

public void UpdateCustomer(int cId, string cName)
        {
            OleDbConnection sqlConn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\my.mdb");

            String sqlText = "update customers set customername = @customername where (customerid = @customerid)";
            OleDbCommand sqlCmd = new OleDbCommand(sqlText, sqlConn);
            sqlCmd.CommandType = System.Data.CommandType.Text;
            sqlCmd.Parameters.Add(new OleDbParameter("@customerid", OleDbType.Integer));
            sqlCmd.Parameters["@customerid"].Value = cId;
            sqlCmd.Parameters.Add(new OleDbParameter("@customername", OleDbType.VarChar, 50));
            sqlCmd.Parameters["@customername"].Value = cName;

            try
            {
                sqlConn.Open();
                object o = sqlCmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                throw new Exception("ошибка метода CustomerDB.UpdateCustomer(...): " + ex.Message);
            }
            finally
            {
                sqlConn.Close();
            }
        }


Исключения не возникает, просто ничего не происходит.
Если прописать так:
String sqlText = "update customers set customername = 'new_name' where (customerid = @customerid)";

то сработает, видимо проблема скрыта в параметре, но почему? неверно указан тип? менял и тип и название параметра — не помогло

вставка, удаление работают (с параметрами)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.