| imho.ws |
![]() |
|
|
|||||||
|
Сообщения:
Перейти к новому /
Последнее
|
Опции темы |
|
|
# 1 |
|
Junior Member
Регистрация: 20.04.2002
Адрес: Ну очень красивая клетка
Сообщения: 148
![]() |
Проблема заключается в следующем: написал я простинький скрипт в ASP.NET, цель которого всего навсего обращятся к базе данных написаной на Access'е и там менять значение одного поля в таблице Accounts и добавлять строчку в таблице Transactions. Только вот в чем проблема.... когда обращаюсь к базе данных то в exeption ловится вот такая ошибка: "Must be an updatable quaery".
Прямо не знаю что делать.... все до ужаса простые, никаких проблем быть не должно, но увы не работает. Вот кстати и statements: UPDATE tblAccounts SET Amount = ? WHERE UserID = ? и INSERT INTO tblTransactions ( DatePosted, Amount, Payee, UserID ) VALUES (?,?,?,?) вместо ? само сабой переменные. Пробовал и напрямую (OleDBCommand как text) и используя quaery находящуюся в самой базе данных (OleDBCommand как StoredProcedure) Кстати SELECT statement работает прекрасно........ помогите кто может, плиз
__________________
Пингвины, бегающие по Южному полюсу, вертят Землю, а попугаи, они так, для красоты. |
|
|
|
|
# 3 |
|
Junior Member
Регистрация: 20.04.2002
Адрес: Ну очень красивая клетка
Сообщения: 148
![]() |
вот например код UPDATE, который создает строку полностью:
Sub UpdateBalance(ByVal decNewAmount As Decimal) Dim objCmd As OleDb.OleDbCommand = New OleDb.OleDbCommand() objCmd.CommandType = CommandType.Text objCmd.Connection = Conn objCmd.CommandText = "UPDATE tblAccounts SET Balance = " objCmd.CommandText = objCmd.CommandText & decNewAmount.ToString & " WHERE UserID= " objCmd.CommandText = objCmd.CommandText & CStr(Request.Cookies("Account").Value) Try objCmd.Connection.Open() objCmd.ExecuteNonQuery() Catch ex As OleDb.OleDbException Me.lblMessage.Text = ex.Message Finally objCmd.Connection.Close() End Try End Sub а вот код INSERT, для разнообразия использует quaery заранее написанную в самой базе данных: Sub AddTransaction(ByVal strPayee As String, ByVal decAmount As Decimal) Dim objCmd As OleDb.OleDbCommand = New OleDb.OleDbCommand("spInsertTransaction", Conn) objCmd.CommandType = CommandType.StoredProcedure Dim objParam As OleDb.OleDbParameter objParam = objCmd.Parameters.Add("@Date", OleDb.OleDbType.Date) objParam.Direction = ParameterDirection.Input objParam.Value = DateTime.Now objParam = objCmd.Parameters.Add("@Amount", OleDb.OleDbType.Decimal) objParam.Direction = ParameterDirection.Input objParam.Value = decAmount objParam = objCmd.Parameters.Add("@Payee", OleDb.OleDbType.BSTR) objParam.Direction = ParameterDirection.Input objParam.Value = strPayee objParam = objCmd.Parameters.Add("@UserID", OleDb.OleDbType.BSTR) objParam.Direction = ParameterDirection.Input objParam.Value = Request.Cookies("Account").Value Try objCmd.Connection.Open() objCmd.ExecuteNonQuery() Catch ex As OleDb.OleDbException lblMessage.Text = ex.Message Finally objCmd.Connection.Close() End Try End Sub оба кидают один и тот-же exeption зарание спасибо за помощь
__________________
Пингвины, бегающие по Южному полюсу, вертят Землю, а попугаи, они так, для красоты. Последний раз редактировалось HappyParrot; 25.04.2003 в 03:26. |
|
|