powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Подскажите как работать с базами данных!? (запись, чтение, удаление)
13 сообщений из 13, страница 1 из 1
Подскажите как работать с базами данных!? (запись, чтение, удаление)
    #32559621
Фотография Boyler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только неделю назад поставил .NET 2003
Не могу нигде даже примера найти!
Все что смог сделать - заполнить DataGrid!
Теперь надо добавить запись, удалить запись.
База данных Access.

Если можно стандартные методы, для чайников так сказать.
Заранее спасибо!
...
Рейтинг: 0 / 0
Подскажите как работать с базами данных!? (запись, чтение, удаление)
    #32559647
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Создай новый проект
2. Удали от туда форму
3. На проекте правой кнопкой в Add добавь NewItem с названием DataFormWizard
4. Дальше по инструкциям предлагаемым Studio
5. Смотри полученный код
P.S. Желаю удачи
...
Рейтинг: 0 / 0
Подскажите как работать с базами данных!? (запись, чтение, удаление)
    #32559707
Фотография Boyler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Че-то нихрена там не пойму!

Методом тыка вышел на это:
Код: 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.
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' Переменные
        Dim ObjTel As String
        Dim ObjAdr As String
        Dim ObjText As String
        Dim ObjFormat As String
        Dim ObjKol As String

        ObjTel = txtTelObj.Text
        ObjAdr = txtObjAdr.Text
        ObjText = txtObjText.Text
        ObjKol = txtObjKol.Text

        If rNormal.Checked = True Then ObjFormat = "Normal"
        If rBold.Checked = True Then ObjFormat = "Bold"
        If rRamka.Checked = True Then ObjFormat = "Ramka"
        If rRamkaBold.Checked = True Then ObjFormat = "RamkaBold"
        If rBlack.Checked = True Then ObjFormat = "Black"
        If rBlackBold.Checked = True Then ObjFormat = "BlackBold"

' Записываем
        Dim anyRow As DataRow = DataObj1.Tableobj.NewRow
        anyRow(DataObj1.Tableobj.textobjColumn) = ObjText
        anyRow(DataObj1.Tableobj.texttelColumn) = ObjTel
        anyRow(DataObj1.Tableobj.RubrikaColumn) = "Тест"
        anyRow(DataObj1.Tableobj.KolColumn) = ObjKol
        anyRow(DataObj1.Tableobj.FormatColumn) = ObjFormat
        DataObj1.Tableobj.Rows.Add(anyRow)
    End Sub

Но почему-то записи не сохраняются после выхода из проекта хотя в гриде все отображается!
Где-то нашел в MSDN DataObj1.AcceptChanges() и DataObj1.EndEdit() , но не тот не другой эффекта не оказывает.

Как основательно зафиксировать данные в базе?

PS: Книг в магазинах пока нет, решил начать обучение сразу с большого проекта... уж необессудьте за глупые вопросы.
...
Рейтинг: 0 / 0
Подскажите как работать с базами данных!? (запись, чтение, удаление)
    #32559950
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
 Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdate.Click
        Try
            'Attempt to update the datasource.
            Me.UpdateDataSet()
        Catch eUpdate As System.Exception
            'Add your error handling code here.
            'Display error message, if any.
            System.Windows.Forms.MessageBox.Show(eUpdate.Message)
        End Try

    End Sub
    Private Sub btnLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoad.Click
        Try
            'Attempt to load the dataset.
            Me.LoadDataSet()
        Catch eLoad As System.Exception
            'Add your error handling code here.
            'Display error message, if any.
            System.Windows.Forms.MessageBox.Show(eLoad.Message)
        End Try

    End Sub
    Private Sub btnCancelAll_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelAll.Click
        Me.objdataset1.RejectChanges()

    End Sub
    Public Sub UpdateDataSet()
        'Create a new dataset to hold the changes that have been made to the main dataset.
        Dim objDataSetChanges As WindowsApplication4.dataset1 = New WindowsApplication4.dataset1
        'Stop any current edits.
        Me.BindingContext(objdataset1, "Table1").EndCurrentEdit()
        'Get the changes that have been made to the main dataset.
        objDataSetChanges = CType(objdataset1.GetChanges, WindowsApplication4.dataset1)
        'Check to see if any changes have been made.
        If (Not (objDataSetChanges) Is Nothing) Then
            Try
                'There are changes that need to be made, so attempt to update the datasource by
                'calling the update method and passing the dataset and any parameters.
                Me.UpdateDataSource(objDataSetChanges)
                objdataset1.Merge(objDataSetChanges)
                objdataset1.AcceptChanges()
            Catch eUpdate As System.Exception
                'Add your error handling code here.
                Throw eUpdate
            End Try
            'Add your code to check the returned dataset for any errors that may have been
            'pushed into the row object's error.
        End If

    End Sub
    Public Sub LoadDataSet()
        'Create a new dataset to hold the records returned from the call to FillDataSet.
        'A temporary dataset is used because filling the existing dataset would
        'require the databindings to be rebound.
        Dim objDataSetTemp As WindowsApplication4.dataset1
        objDataSetTemp = New WindowsApplication4.dataset1
        Try
            'Attempt to fill the temporary dataset.
            Me.FillDataSet(objDataSetTemp)
        Catch eFillDataSet As System.Exception
            'Add your error handling code here.
            Throw eFillDataSet
        End Try
        Try
            grdTable1.DataSource = Nothing
            'Empty the old records from the dataset.
            objdataset1.Clear()
            'Merge the records into the main dataset.
            objdataset1.Merge(objDataSetTemp)
            grdTable1.SetDataBinding(objdataset1, "Table1")
        Catch eLoadMerge As System.Exception
            'Add your error handling code here.
            Throw eLoadMerge
        End Try

    End Sub
    Public Sub UpdateDataSource(ByVal ChangedRows As WindowsApplication4.dataset1)
        Try
            'The data source only needs to be updated if there are changes pending.
            If (Not (ChangedRows) Is Nothing) Then
                'Open the connection.
                Me.OleDbConnection1.Open()
                'Attempt to update the data source.
                OleDbDataAdapter1.Update(ChangedRows)
            End If
        Catch updateException As System.Exception
            'Add your error handling code here.
            Throw updateException
        Finally
            'Close the connection whether or not the exception was thrown.
            Me.OleDbConnection1.Close()
        End Try

    End Sub
    Public Sub FillDataSet(ByVal dataSet As WindowsApplication4.dataset1)
        'Turn off constraint checking before the dataset is filled.
        'This allows the adapters to fill the dataset without concern
        'for dependencies between the tables.
        dataSet.EnforceConstraints = False
        Try
            'Open the connection.
            Me.OleDbConnection1.Open()
            'Attempt to fill the dataset through the OleDbDataAdapter1.
            Me.OleDbDataAdapter1.Fill(dataSet)
        Catch fillException As System.Exception
            'Add your error handling code here.
            Throw fillException
        Finally
            'Turn constraint checking back on.
            dataSet.EnforceConstraints = True
            'Close the connection whether or not the exception was thrown.
            Me.OleDbConnection1.Close()
        End Try

    End Sub
End Class

Вот так записи оснвательно фиксируются в БД
P.S. Я вышел на это методом научного ТЫКА
...
Рейтинг: 0 / 0
Подскажите как работать с базами данных!? (запись, чтение, удаление)
    #32562812
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то нашел в MSDN DataObj1.AcceptChanges() и DataObj1.EndEdit(), но не тот не другой эффекта не оказывает.

Как основательно зафиксировать данные в базе?


AcceptChanges - это зафиксировать изменения в локальном DataSet .

Для того чтобы внести изменения в БД, используйте метод Update вашего DataAdapter, а после уже вызывается AcceptChanges.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Подскажите как работать с базами данных!? (запись, чтение, удаление)
    #32568597
Фотография Boyler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уж простите за назойливость!

С записью определился:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
        Dim anyRow As DataRow = DataObj1.Tableobj.NewRow
        anyRow(DataObj1.Tableobj.textobjColumn) = ObjText
        anyRow(DataObj1.Tableobj.texttelColumn) = ObjTel
        anyRow(DataObj1.Tableobj.RubrikaColumn) = "Тест"
        anyRow(DataObj1.Tableobj.KolColumn) = ObjKol
        anyRow(DataObj1.Tableobj.FormatColumn) = ObjFormat
        DataObj1.Tableobj.Rows.Add(anyRow)
        OleDbDataAdapter1.Update(DataObj1, "Tableobj")
А вот с удалением ни как!
Пробовал так:
Код: plaintext
1.
2.
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Me.BindingContext(DataObj1, "Tableobj").RemoveAt(Me.BindingContext(DataObj1, "Tableobj").Position)
    End Sub
В гриде как положено все отображается, но не сохраняется!
Аналогичный способ
Код: plaintext
OleDbDataAdapter1.Update(DataObj1, "Tableobj")
Не помогает, дебагер выдает ошибку:
An unhandled exception of type 'System.InvalidOperationException' occurred in system.data.dll

Additional information: Update requires a valid DeleteCommand when passed DataRow collection with deleted rows.
Почему жизнь к ламерам так не справедлива?!!

Нехочу следовать стандартам, просто хочется понять сам процесс...
...
Рейтинг: 0 / 0
Подскажите как работать с базами данных!? (запись, чтение, удаление)
    #32568753
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я не пойму "ламерскую :))" логику, "Зачем ты всё это делаешь???" (руками создаёшь строку... и т.д.)
Нельзя, просто, кинуть connection, adapter, dataset на форму, затем привязать dataset к datagrid (properties, datasource)
Изменения вносить в datagrid, а в коде делать update dataadapter
Или этот метод не подходит???
P.S. просто я тоже пробовал всё это (для чистоты эксперементов), но что толку - в конце концов мой код просто стал повторять код сгенерированный vb.net (не более того). На мой взгляд, лучше дать создать всё это машине, и откорректировать под свой случай (внеся небольшие изменения)
...
Рейтинг: 0 / 0
Подскажите как работать с базами данных!? (запись, чтение, удаление)
    #32570339
Фотография Boyler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Логика проста - ввод данных в базу производится посредством набора текста в текстовых блоках.
ObjTel = txtTelObj.Text
ObjAdr = txtObjAdr.Text
ObjText = txtObjText.Text
ObjKol = txtObjKol.Text
А проблема просто в том что нет "нормальных" примеров работы с базами данных, а может плохо искал, и нет соответствующей литературы (в городе)!
Все что было в инете уже прочитал. В том числе и по С#, но как там так и здесь те же грабли!

Да ладно в общем не велика проблема! Будем ждать, искать...
Спасибо за беспокойство и извините если что не так!

PS: Почти стихами заговорил... :-)
...
Рейтинг: 0 / 0
Подскажите как работать с базами данных!? (запись, чтение, удаление)
    #32570404
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну ты - ЧЕЛОВЕЧИЩЕ (в добром смысле слова :))
такой метод пробовал???

1. Создай новый проект
2. Удали от туда форму
3. На проекте правой кнопкой в Add добавь NewItem с названием DataFormWizard
4. Дальше по инструкциям предлагаемым Studio
5. Смотри полученный код
P.S. Желаю удачи
...
Рейтинг: 0 / 0
Подскажите как работать с базами данных!? (запись, чтение, удаление)
    #32570432
Фотография Boyler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В первую очередь попробовал!
Что-то там у меня не сошлось.

Видимо прийдется попробовать очередной раз!

PS: В шестерке проще все было... лежит уже такой проект, полностью работоспособен по сей день...

В любом случае спасибо за потраченные на меня трафик и время!
...
Рейтинг: 0 / 0
Подскажите как работать с базами данных!? (запись, чтение, удаление)
    #32570476
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Трафик - ХАЛЯВА (наверное по этому такой разговорчивый)
А подумать ты меня заставил - СПАСИБО...
Я натолкнулся на такое же сообщение в коде сгенерином мастером
авторAn unhandled exception of type 'System.InvalidOperationException' occurred in system.data.dll
Additional information: Update requires a valid DeleteCommand when passed DataRow collection with deleted rows.

Знаешь как решается???? (не было бы счастья да несчастье помогло)
Элементарно - в табле небыло primary key (как то нужна была такая таблица)
и команды, выполняемые адаптером тока insert и select
А добавил я кей и всё заработало...
P.S. Думаю, что и у тебя тоже самое... (не думаю - УВЕРЕН)
...
Рейтинг: 0 / 0
Подскажите как работать с базами данных!? (запись, чтение, удаление)
    #32570493
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
смотри пример, исполненный машиной (вроде всё работает :)))
...
Рейтинг: 0 / 0
Подскажите как работать с базами данных!? (запись, чтение, удаление)
    #32572343
Фотография Boyler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо вам с халявой! :-)

В очередной раз спасибо!
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Подскажите как работать с базами данных!? (запись, чтение, удаление)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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