Member 13107736 Ответов: 1

Как получить определенные данные из представления таблицы данных и сохранить их в ms access в VB.NET


Как получить определенные данные из представления таблицы данных и сохранить их в ms access in vb.net?
Я хотел сохранить данные в виде столбцов 2, 4 и 5

Что я уже пробовал:

Импортирует System.Data.Для oledb
Публичный Класс ViewConsultationAndMakeAppointment
Общественные M как новый перечислений msgboxresult
Dim cnnOLEDB как новое OleDbConnection
Dim cmdCheck как новая OleDbCommand
Dim cmdSearch как новая OleDbCommand
Dim cmdAdd как новая OleDbCommand
Дим кон = "поставщика=Майкрософт.Туз.Oledb для.12.0;Источник данных=С:\Пользователи\Siminh\рабочий стол\ДПС\университет.# то # ;"
Private Sub btnView_Click (sender As Object, e As EventArgs) обрабатывает btnView.Щелчок
cnnOLEDB.Открыть()
Если txtName.Текст < & gt; "" Тогда
Дим доктор, как и oledbdatareader
Тусклый str как струна
str = " Select * from [Lecturer] where [Lecturer Name]=' " & txtName.Текст &"';"
Дим УМК как объект oledbcommand = новый объект oledbcommand(ул. cnnOLEDB)
Dim ds как новый набор данных
Дим ДТ в качестве нового объекта DataTable
ДС.Таблицы.Добавить (dt)
Дим да как новый OleDbDataAdapter
dr = cmd.Метода executereader
Если доктор.Прочитать() Тогда
da = New OleDbDataAdapter ("Select * from [Consultation] where [Lecturer Name]='" & txtName.Текст & "'и [дата]='" & DateTimePicker1.Текст &"'", cnnOLEDB)
да.Заполнить(ДТ)
DataGridView1.Источник данных = ДТ.DefaultView
DataGridView1.Показать()
Ещё
MsgBox ("Запись Не Найдена...")
Конец, Если
др.Рядом()
Ещё
MsgBox ("пожалуйста, введите имя лектора.", MsgBoxStyle.Информация + MsgBoxStyle.OkOnly, " введите все данные")
Конец, Если
cnnOLEDB.Закрывать()
Конец Подводной Лодки
Private Sub btnConfirm_Click (sender As Object, e As EventArgs) обрабатывает btnConfirm.Щелчок
cnnOLEDB.Открыть()
cmdCheck.CommandText = " select * from [Lecturer] where [Lecturer Name]=' " & txtName.Текст &"';"
cmdCheck.Соединение = cnnOLEDB
Dim dr As OleDbDataReader = cmdCheck.Метода executereader()
Если MsgBox("вы уверены, что добавите информацию?", MsgBoxStyle.Вопрос + MsgBoxStyle.YesNo, "Create") = MsgBoxResult.Да Тогда
Если txtAppointment.Текст < & gt; "" И txtContact.Текст < & gt; "" И txtEmail.Текст < & gt; "" И txtReason.Text < & gt; "" И txtName.Текст < & gt; "" Тогда
Если доктор.Чтение = Истина Тогда
cmdAdd. CommandText = " вставить в [Назначение] значения ('" & txtAppointment.Текст &"', '" & txtName.Текст &"', '" & lblStuID.Текст &"', '" & lblName.Текст &"', '" & DateTimePicker1.Текст &"', '" & txtReason.Текст &"', '" & txtEmail.Текст &"', '" & txtContact.Текст &"');"
cmdAdd.Свойство Commandtype = Значение Commandtype.Текст
cmdAdd.Соединение = cnnOLEDB
cmdAdd.Метод executenonquery()
MsgBox ("Создать Успешно!")
LecturerMenuForm.Показать()
txtContact.Четкий()
txtEmail.Четкий()
txtReason.Четкий()
txtName.Четкий()
txtAppointment.Четкий()
Меня.Скрыть()
Ещё
MsgBox ("нет такого идентификатора...")
Конец, Если
др.Рядом()
Ещё
MsgBox ("пожалуйста, вставьте все данные.", MsgBoxStyle.Информация + MsgBoxStyle.OkOnly, " введите все данные")
Конец, Если
Конец, Если
cnnOLEDB.Закрывать()
Конец Подводной Лодки

[no name]

Вы получаете данные из сеток, получая доступ к их свойствам столбцов и строк. Где это в вашем неформатированном дампе кода Вы это делаете? Какие проблемы возникают у вас с вашим кодом? Что показал вам отладчик, когда вы прошли через свой код?

1 Ответов

Рейтинг:
0

ongilito

Loop through the DataGridView Rows and insert the data like this;

Imports System.Data
Imports System.Data.OleDb

Public Class Form1
        'these are variables for connecting to ms Access Database
    Dim con As New OleDbConnection
    Dim cmd As New OleDbCommand
    Dim sqldr As OleDbDataReader
    Dim sqlda As New OleDbDataAdapter
    Dim dt As New DataTable 'Data tables that hold data to be inserted to dataset
    Dim conStrng As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\[yourDatabaseName].accdb;Persist Security Info=True;Jet OLEDB:Database Password=[yourAccessPassword]"
    
  'this function will just be called to execute the function
   Private Function ExecuteSqlStatement(ByVal sqlStatement As String) As DataTable
        Try
            Dim con As New OleDbConnection(strsql)
            Dim sqlda As New OleDbDataAdapter(sqlStatement, con)
            Dim sqlCmdBuilder As New OleDbCommandBuilder(sqlda)
            dt.Reset()
            sqlda.Fill(dt)
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
        Return dt
    End Function

    'now this is how you insert the data From DataGriedView to database
     Sub saveToDB()
       'Loop through the datagriedview1 rows
        For i=0 To DataGriedView1.Rows.Count-1
            dim sqlStatement As String="INSERT INTO [yourTableName] ([fieldName1],[fieldName2])VALUES('" & DataGriedView1.Rows(i).Cells("[column1Name].Value.ToString() &"','" & DataGriedView1.Rows(i).Cells("[column2Name].Value.ToString() &"'")"
        'Now Call then Executing function and pass in the string
         ExecuteSqlStatement(sqlStatement)
        Next
     End Sub