Здравствуйте, Ramzesito, Вы писали:
R>Простейшая ситуация: таблица в MDB (customerid, customername), класс с методами обновления, вставки, удаления записей. Запросы осуществляются в коде методов с использованием OleDb.
R>Почему-то не работает Update с параметрами:
R>R>public void UpdateCustomer(int cId, string cName)
R> {
R> OleDbConnection sqlConn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\my.mdb");
R> String sqlText = "update customers set customername = @customername where (customerid = @customerid)";
R> OleDbCommand sqlCmd = new OleDbCommand(sqlText, sqlConn);
R> sqlCmd.CommandType = System.Data.CommandType.Text;
R> sqlCmd.Parameters.Add(new OleDbParameter("@customername", OleDbType.VarChar, 50));
R> sqlCmd.Parameters["@customername"].Value = cName;
R> sqlCmd.Parameters.Add(new OleDbParameter("@customerid", OleDbType.Integer));
R> sqlCmd.Parameters["@customerid"].Value = cId;
R> try
R> {
R> sqlConn.Open();
R> object o = sqlCmd.ExecuteNonQuery();
R> }
R> catch (Exception ex)
R> {
R> throw new Exception("ошибка метода CustomerDB.UpdateCustomer(...): " + ex.Message);
R> }
R> finally
R> {
R> sqlConn.Close();
R> }
R> }
R>
Вроде OleDb провайдер использует вопросительные знаки ? для указания позиции параметров, и не поддерживает именованные параметры.
Однако, если у вас работает какие-то запросы с параметрами, то попробуйте в вашем запросе добавлять параметры и значения в последовательности, в которой они встречаются в запросе (поправил в цитате выше).