Imports System.Data 'daje dostęp do ADO.NET - pozwala używac komponentów do zarządzania danymi z wielu źródeł
Imports System.Data.OleDb 'do odbierania danych i ich aktualizacji
Module myconnection
Public Polaczenie As New OleDb.OleDbConnection("Provider=microsoft.jet.oledb.4.0;data source=" & Application.StartupPath & "\dbstudent.mdb") 'plik bazy - Access 2003 .mdb, 2007 .accdb
Public Sub dodaj(ByVal lvw As ListView, ByVal id As String, ByVal imie As String, ByVal nazwisko As String, ByVal plec As String, ByVal urodziny As String, ByVal Miasto As String)
Dim lv As New ListViewItem
lvw.Items.Add(lv)
lv.Text = id
lv.SubItems.Add(imie)
lv.SubItems.Add(nazwisko)
lv.SubItems.Add(plec)
lv.SubItems.Add(urodziny)
lv.SubItems.Add(Miasto)
End Sub
End Module
Public Class Form1
Dim oddr As OleDbDataReader 'odczyt danych z bazy danych
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Polaczenie.Close()
Polaczenie.Open() 'tutaj wywalał błąd, że połączenie jest otwarte - dlatego najpierw trzeba je zamknąć
Dim cmd As New OleDb.OleDbCommand("INSERT INTO tblstudent VALUES ('" & Me.TextBox1.Text & "','" _
& Me.TextBox2.Text & "','" _
& Me.TextBox3.Text & "','" _
& Me.ComboBox1.Text & "','" _
& Me.DateTimePicker1.Text & "','" _
& Me.TextBox4.Text & "');", Polaczenie)
cmd.ExecuteNonQuery() 'informacja dot. ilości wierszy
Polaczenie.Close()
dodaj(Me.ListView1, Me.TextBox1.Text, Me.TextBox2.Text, Me.TextBox3.Text, Me.ComboBox1.Text, Me.DateTimePicker1.Text, Me.TextBox4.Text) 'doda tekst z TextBoxów do bazy danych
Me.ListView1.Items.Clear() 'odświeżanie ListView
wczytaj()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.ListView1.Columns.Add("ID", 70)
Me.ListView1.Columns.Add("Imię", 120)
Me.ListView1.Columns.Add("Nazwisko", 150)
Me.ListView1.Columns.Add("Płeć", 100)
Me.ListView1.Columns.Add("Urodzony", 100)
Me.ListView1.Columns.Add("Miasto", 239)
Me.ListView1.View = View.Details
Me.ListView1.GridLines = True
wczytaj()
End Sub
Sub wczytaj()
Polaczenie.Open()
Dim cmd As New OleDb.OleDbCommand("select * from tblstudent", Polaczenie)
oddr = cmd.ExecuteReader 'wszystkie rekordy z bazy danych
While oddr.Read() 'jeśli TRUE to przechodzi do następnego wiersza
Call dodaj(Me.ListView1, oddr(0).ToString, oddr(1).ToString, oddr(2).ToString, oddr(3).ToString, oddr(4).ToString, oddr(5).ToString)
Me.TextBox1.Text = CStr(CDbl(oddr(0).ToString) + 1) 'Mid(CStr(oddr(0)), 3) + 1)
End While
Polaczenie.Close()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Polaczenie.Close()
Polaczenie.Open()
Dim cmd As New OleDb.OleDbCommand("DELETE from tblstudent WHERE ID='" & Me.TextBox1.Text & "';", Polaczenie)
cmd.ExecuteNonQuery()
Polaczenie.Close()
Me.ListView1.Items.Clear() 'odświeżanie ListView
wczytaj()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Polaczenie.Close()
Polaczenie.Open()
Dim cmd As New OleDb.OleDbCommand("UPDATE tblstudent SET Imię='" _
& Me.TextBox2.Text & "', Nazwisko='" _
& Me.TextBox3.Text & "', Płeć='" _
& Me.ComboBox1.Text & "', Urodzony='" _
& Me.DateTimePicker1.Text & "', Miasto='" _
& Me.TextBox4.Text & "' WHERE ID='" _
& Me.TextBox1.Text & "';", Polaczenie)
cmd.ExecuteNonQuery()
Polaczenie.Close()
Me.ListView1.Items.Clear() 'odświeżanie ListView
wczytaj()
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Polaczenie.Close()
Polaczenie.Open()
Dim cmd As New OleDb.OleDbCommand("load data local infile 'dane.txt' into table tblstudent;", Polaczenie)
Dim OdebraneDane As OleDbDataReader = cmd.ExecuteReader
OdebraneDane.Read()
'MessageBox.Show(OdebraneDane.Item("ID").ToString, "Nazwa firmy")
'cmd.ExecuteReader() 'zmiana
Polaczenie.Close()
Me.ListView1.Items.Clear()
wczytaj()
End Sub
End Class
Wszystko działa oprócz Private Sub Button5_Click, który mnie blokuje w rozbudowie o dalsze instrukcje.