Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Сохранить изменения в базе / 15 сообщений из 15, страница 1 из 1
31.01.2007, 19:33
    #34297467
Andrey13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить изменения в базе
Пожалуйста подскажите, в чем моя ошибка?
Бьюсь уже 2-ю неделю.

Нижеприведенный код, не хочет сохранять изменения в базе.
Ошибок не выдает.
По форуму на эту тему перечитал все что удалось найти. На мой взгляд должен работать,
а не работает.


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
Public Class Form6
    '1.Создаем ДатаСет
    Dim AccessDS As New Data.DataSet
    '2.Создаем ДатаАдаптер
    Dim AccessDA As Data.OleDb.OleDbDataAdapter = New Data.OleDb.OleDbDataAdapter


    Private Sub Form6_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '3.Определяем строку подключения 
        Dim ConnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Application.StartupPath & "\akt.mdb"
        '4. Собственно подключение
        Dim Conn As New Data.OleDb.OleDbConnection(ConnString)
        '5. Определяем строку для выборки данных
        Dim strSelect As String = "SELECT AktSumm.* FROM AktSumm"
        '6 Создаем команду
        Dim AccessCommand As New Data.OleDb.OleDbCommand(strSelect, Conn)
        '7.Bulder для автоматической записи изменений в базу 
        ' Автоматически генерируем InsertCommand
        Dim cmdBulder As Data.OleDb.OleDbCommandBuilder = New Data.OleDb.OleDbCommandBuilder(AccessDA)
        'Dim dtTable As Data.DataTable = AccessDS.Tables.Item("AktSumm")
        'Установка команды Select
        Me.AccessDA.SelectCommand = AccessCommand
        '8.Установка команды обновления данных в ДатаАдаптер
        AccessDA.UpdateCommand = cmdBulder.GetUpdateCommand
        '9.Установка команды добавления данных в ДатаАдаптер
        AccessDA.InsertCommand = cmdBulder.GetInsertCommand

        '10.Заполняем ДатаСет данными
        AccessDA.Fill(AccessDS, "AktSumm")
        Dg.DataSource() = AccessDS.Tables("AktSumm")


    End Sub

    Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles Dg.CellContentClick

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        MsgBox(AccessDA.UpdateCommand.CommandText)
        MsgBox(AccessDA.InsertCommand.CommandText)
' Сохраняем данные
        AccessDA.Update(AccessDS.Tables("AktSumm"))
        AccessDS.AcceptChanges()

    End Sub

Спасибо.
...
Рейтинг: 0 / 0
31.01.2007, 19:34
    #34297469
Andrey13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить изменения в базе
Да вот файл данных
...
Рейтинг: 0 / 0
31.01.2007, 22:15
    #34297644
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить изменения в базе
подправил ваш пост, есть возможнось исопльзовать тэг "src vb" для кода на VB.NET.

во-первых, не следует доверять коду генерируемого OleDbCommandBuilder'ом.
во-вторых, для начала проверьте а есть ли на самом деле изменения см. HasChanges, GetChanges
+ поиск по форуму по этим ключевым словам.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
01.02.2007, 00:06
    #34297736
Andrey13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить изменения в базе
Что то я совсем запутался.
Вопрос теперь не по ADO.net, а скорее по VB.NET, но плодить темы не хочу и поэтому напишу здесь.

Код: plaintext
Application.StartupPath & "\akt.mdb
- это путь к базе в каталоге из которого запускается
проект. При нажатии F5, копия файла данных создается в папке "bin", если я запускаю
вновь созданный *.exe из bin, то все работает, и видимо всегда работало(т.е. код верный).

Получается что я открываю одну базу, а сохраняю в другую, и так уже неделю пытаюсь найти ошибку там где ее нет?

Объясните пожалуйста, кто нибудь в чем тут дело?

Спасибо.
...
Рейтинг: 0 / 0
01.02.2007, 00:08
    #34297738
Andrey13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить изменения в базе
спасибо, Sa буду теперь знать и пользоваться.
...
Рейтинг: 0 / 0
01.02.2007, 00:46
    #34297759
Andrey13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить изменения в базе
Вопрос по коду обновления данныз снимается, указал Data Source явно все работает.
Но если не трудно объясните пожалуйста, почему у меня произошла путаница с пасположением базы?
...
Рейтинг: 0 / 0
01.02.2007, 08:12
    #34297916
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить изменения в базе
Andrey13
Вопрос по коду обновления данныз снимается, указал Data Source явно все работает.
Но если не трудно объясните пожалуйста, почему у меня произошла путаница с пасположением базы?

а у вас mdb файл добавлен в проект?

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
01.02.2007, 10:12
    #34298203
Andrey13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить изменения в базе
Я не понял Ваш вопрос, что значит добавлен в проект? Файл mdb лежит в папке с проектом, если вы именно это имеете ввиду.
...
Рейтинг: 0 / 0
02.02.2007, 00:43
    #34300665
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить изменения в базе
Andrey13
Я не понял Ваш вопрос, что значит добавлен в проект? Файл mdb лежит в папке с проектом, если вы именно это имеете ввиду.

Include In Project. речь идет об VS 2005, если у вас отличная версия то не парьтесь )

Код: plaintext
 uid  =  S a

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
02.02.2007, 19:33
    #34303575
Andrey13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить изменения в базе
Да VS 2005. Пожалуйста объясните подробней, для тех кто в танке.
...
Рейтинг: 0 / 0
02.02.2007, 20:40
    #34303647
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить изменения в базе
Andrey13
Да VS 2005. Пожалуйста объясните подробней, для тех кто в танке.

в solution explorer делаете show all files -> увидите все файлы лежащие в папке solution но не включенных в проект. на своем mdb файле щелкаете правой кнопкой мыши и даете команду Include In Project. после запустится мастер создания типизированного датасета. сам mdb файл будет копироваться в папку bin при компиляции (по умолчанию так можно настроить чтобы не копировался).

Код: plaintext
 uid  =  S a

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
02.02.2007, 21:21
    #34303678
Andrey13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить изменения в базе
Спасибо, с этим понятно. Если не сложно, как определить, что изменения сохранены успешно?
...
Рейтинг: 0 / 0
02.02.2007, 21:37
    #34303691
Andrey13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить изменения в базе
что должен вернуть DA.Update при успешном выполнении операции?
...
Рейтинг: 0 / 0
02.02.2007, 21:54
    #34303700
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить изменения в базе
Andrey13
Если не сложно, как определить, что изменения сохранены успешно?


1) если вы не получили exception то запрос выполнился успешно :-)
2) можно возвращать количество обработанных записей, если не равно 0. значит запись сохранена.
3) можно после выполнения апдейта запросить запись на клиент с сервера и убедиться что все ок.

Код: plaintext
 uid  =  S a

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
03.02.2007, 11:42
    #34303981
Andrey13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить изменения в базе
Спасибо, Sa.
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Сохранить изменения в базе / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]