powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Сохранить изменения в базе
15 сообщений из 15, страница 1 из 1
Сохранить изменения в базе
    #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
Сохранить изменения в базе
    #34297469
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да вот файл данных
...
Рейтинг: 0 / 0
Сохранить изменения в базе
    #34297644
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подправил ваш пост, есть возможнось исопльзовать тэг "src vb" для кода на VB.NET.

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

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

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

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

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

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

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

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

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

Код: plaintext
 uid  =  S a

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Сохранить изменения в базе
    #34303575
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да VS 2005. Пожалуйста объясните подробней, для тех кто в танке.
...
Рейтинг: 0 / 0
Сохранить изменения в базе
    #34303647
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
Сохранить изменения в базе
    #34303678
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, с этим понятно. Если не сложно, как определить, что изменения сохранены успешно?
...
Рейтинг: 0 / 0
Сохранить изменения в базе
    #34303691
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что должен вернуть DA.Update при успешном выполнении операции?
...
Рейтинг: 0 / 0
Сохранить изменения в базе
    #34303700
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey13
Если не сложно, как определить, что изменения сохранены успешно?


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

Код: plaintext
 uid  =  S a

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


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