Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 UPDATE с помощью OleDbDataAdapter в VB.NET  [new]
zossenka
Member

Откуда:
Сообщений: 11
Здравствуйте всем!
Помогите пожалуйста мне разобраться, нужна помощь, а то голова уже пухнет. Моя проблема состоит в том, что мне я подсчитываю сумму и эту сумму мне нужно записать в таблицу БД. Для этого я использую компонент OleDbDataAdapter. Мой запрос срабатывает, только когда в построителе запросов его выполняешь, он вполняется и передает результаты в БД. А когда его уже в программе используешь, все проходит без ошибок, но данные не изменяются в БД. Я уже многое, что находила в интернете, но у меня ничего не срабатывает. Вот часть моей проги.


автор
OleDbDataAdapter11.UpdateCommand.CommandText = "update ozenka set summa_bal =:s where ID_ozenka =:ozenka"
OleDbDataAdapter11.UpdateCommand.Parameters(0).Value = summa
OleDbDataAdapter11.UpdateCommand.Parameters(1).Value = zapros
OleDbDataAdapter11.Update(S_ozenka1.OZENKA)



где summa и zapros, полученные до этого данные. А параметры "s" и "ozenka" , уже заранее прописаны в свойстве Parametrs OleDbDataAdapter

Я пробовала еще сразу передавать параметры, вот так:

автор
OleDbDataAdapter11.UpdateCommand.CommandText = "update ozenka set summa_bal = 300 where ID_ozenka = 1"



Но чего-то не хватает. Подскажите пожалуйста где ошибка или напишите как мне правильно написть этот UPDATE((((
23 апр 10, 17:06    [8681214]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE с помощью OleDbDataAdapter в VB.NET  [new]
Konst_One
Member

Откуда:
Сообщений: 11551
Public Function CreateSqlDataAdapter( _
    ByVal connection As SqlConnection) As SqlDataAdapter

    Dim adapter As SqlDataAdapter = New SqlDataAdapter
    adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey

    ' Create the commands.
    adapter.SelectCommand = New SqlCommand( _
        "SELECT CustomerID, CompanyName FROM CUSTOMERS", connection)
    adapter.InsertCommand = New SqlCommand( _
        "INSERT INTO Customers (CustomerID, CompanyName) " & _
         "VALUES (@CustomerID, @CompanyName)", connection)
    adapter.UpdateCommand = New SqlCommand( _
        "UPDATE Customers SET CustomerID = @CustomerID, CompanyName = " & _
        "@CompanyName WHERE CustomerID = @oldCustomerID", connection)
    adapter.DeleteCommand = New SqlCommand( _
        "DELETE FROM Customers WHERE CustomerID = @CustomerID", connection)

    ' Create the parameters.
    adapter.InsertCommand.Parameters.Add("@CustomerID", _
        SqlDbType.Char, 5, "CustomerID")
    adapter.InsertCommand.Parameters.Add("@CompanyName", _
        SqlDbType.VarChar, 40, "CompanyName")

    adapter.UpdateCommand.Parameters.Add("@CustomerID", _
        SqlDbType.Char, 5, "CustomerID")
    adapter.UpdateCommand.Parameters.Add("@CompanyName", _
        SqlDbType.VarChar, 40, "CompanyName")
    adapter.UpdateCommand.Parameters.Add("@oldCustomerID", _
        SqlDbType.Char, 5, "CustomerID").SourceVersion = _
        DataRowVersion.Original

    adapter.DeleteCommand.Parameters.Add("@CustomerID", _
        SqlDbType.Char, 5, "CustomerID").SourceVersion = _
        DataRowVersion.Original

    Return adapter
End Function

Dim selectSQL As String = _
  "SELECT CustomerID, CompanyName FROM Customers " & _
  "WHERE CountryRegion = ? AND City = ?"
Dim insertSQL AS String = _
  "INSERT INTO Customers (CustomerID, CompanyName) VALUES (?, ?)"
Dim updateSQL AS String = _
  "UPDATE Customers SET CustomerID = ?, CompanyName = ? " & _
  WHERE CustomerID = ?"
Dim deleteSQL As String = "DELETE FROM Customers WHERE CustomerID = ?"

' Assumes that connection is a valid OleDbConnection object.
Dim adapter As OleDbDataAdapter = New OleDbDataAdapter 

Dim selectCMD AS OleDbCommand = New OleDbCommand(selectSQL, connection)
adapter.SelectCommand = selectCMD

' Add parameters and set values.
selectCMD.Parameters.Add( _
  "@CountryRegion", OleDbType.VarChar, 15).Value = "UK"
selectCMD.Parameters.Add( _
  "@City", OleDbType.VarChar, 15).Value = "London"

Dim customers As DataSet = New DataSet
adapter.Fill(customers, "Customers")
26 апр 10, 14:31    [8689499]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE с помощью OleDbDataAdapter в VB.NET  [new]
zossenka
Member

Откуда:
Сообщений: 11
Спасибо за ответ. Но я использую OleDbDataAdapter. И база у меня в аксесе. Но я поразбираюсь, может и пойму как сделать правильно.
26 апр 10, 16:55    [8690861]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE с помощью OleDbDataAdapter в VB.NET  [new]
AlexeiK
Member

Откуда:
Сообщений: 2859
zossenka,

да в oledbdataadapter нету именованных параметров)
тебе нужно вроде использовать ? там где ты хочешь вставить параметр, и следить за присвоением параметров в коллекцию parameters.

и все будет норм.
30 апр 10, 13:41    [8714767]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить