Re: Не работает Update для таблицы MDB
От: sto Украина http://overstore.codeplex.com
Дата: 10.02.10 09:21
Оценка:
Здравствуйте, 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 провайдер использует вопросительные знаки ? для указания позиции параметров, и не поддерживает именованные параметры.
Однако, если у вас работает какие-то запросы с параметрами, то попробуйте в вашем запросе добавлять параметры и значения в последовательности, в которой они встречаются в запросе (поправил в цитате выше).
There is no such thing as the perfect design.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.