Thread View: pl.comp.lang.vbasic
3 messages
3 total messages
Started by ChrissP.
Sat, 25 Jul 2009 19:45
VS2008 i MS Access (długie)
Author: ChrissP.
Date: Sat, 25 Jul 2009 19:45
Date: Sat, 25 Jul 2009 19:45
68 lines
3307 bytes
3307 bytes
Witam
Zacząłem bawić się VS2008 i na dzień dobry mam problem z dostępem do danych
w bazie access'a.
Otóż w programie chciałbym (mniejsza o powody) sprawdzić, czy użytkownik
zalogował się poprawnie pobierając dane z tabel w bazie access'a:
baza o nazwie "baza1.mdb", tabela "tblUsers", pola "username" i "password".
Niezbyt podoba mi się dołączanie bazy za pomocą "klikania" w VS, wolałbym
ręcznie zdefiniować połączenie, wysłać zapytanie SQL i sprawdzić wyniki za
pomocą recordset'u... No i właśnie z tym mam problem...
Jak na razie udało mi się "sklecić" coś takiego:
Dim user As String
Dim pass As String
Dim ssql As String
Public appPath As String = Environment.CurrentDirectory
Dim connectionString As String
Dim da As New OleDb.OleDbDataAdapter '(ssql, myConnection)
Dim path As String
Dim ds As New DataSet
Dim myConnection As System.Data.OleDb.OleDbConnection
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles OK.Click
user = txtUsername.Text
pass = txtPassword.Text
path = appPath & "\baza1.mdb"
connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="
& path & ";Mode=Share Deny None;Persist Security Info=True"
ssql = "Select * from tblUsers Where LoginID = '" & user & "' and
password = '" & pass & "'"
myConnection = New OleDb.OleDbConnection(connectionString)
myConnection.Open()
da = New System.Data.OleDb.OleDbDataAdapter(ssql, myConnection)
da.Fill(ds, "tblUsers")
Dim tabela As DataColumn = ds.Tables("tblUsers").Columns("username)
Dim tabela2 As DataColumn =
ds.Tables("tblUsers").Columns("password")
myConnection.Close()
' I tutaj nie wiem jak sprawdzić czy i jakie dane są w ds...
Me.Hide()
frmMain.Show()
End Sub
No i właśnie... W tym przypadku, wynikiem pozytywnym będzie, jeżeli będzie
zwrócony jeden rekord, ale jak to sprawdzić? Dodatkowo, chciałbym odczytać
zawartość innych pól z tego rekordu (np. powiedzmy "role", które to pole
też znajduje się w tym rekordzie.
Szukałem w googlach, ale moje zrozumienie jest chyba niewystarczające...
Pozdrawiam i dzięki za odpowiedzi.
--
-------------------------------
Pozdrawiam
Krzysztof P.
Member of Polish BOINC Society
Member of Boinc@Poland Team
Re: VS2008 i MS Access (długie)
Author: Marek
Date: Sun, 26 Jul 2009 10:54
Date: Sun, 26 Jul 2009 10:54
126 lines
4680 bytes
4680 bytes
Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ConnectToMDB.Click
Dim DataFileMDB As String = "d:\test.mdb"
Dim ConnectMDB As OleDbConnection = New
OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
DataFileMDB & ";")
Dim CommandMDB As New OleDbCommand
Dim ReaderMDB As OleDbDataReader
Dim Pole1 As String
ConnectMDB.Open()
With CommandMDB
.Connection = ConnectMDB
. CommandText = "SELECT * FROM TabGL" 'polecenie sql wszystkie pola mozna
dodawac warunek WHERE itp
ReaderMDB = .ExecuteReader
End With
'czytanie pierwszego rekordu
ReaderMDB.Read()
Pole1 = ReaderMDB(0) 'przypisanie wartosci pierwszemu polu do zmiennej
MsgBox(Pole1)
'lub czytanie wszystkich rekordow w petli
While ReaderMDB.Read
Pole1 = ReaderMDB(0) 'przypisanie wartosci pierwszemu polu do zmiennej
MsgBox(Pole1)
End While
End Sub
'Mozna oczywiscie przypisawać do miennych wiele pół tylko pamiętać
aby tym zmiennej był zgodny z typem pola
Użytkownik "ChrissP." <krzyszp@-tnijto-poczta.onet.pl> napisał w wiadomości
news:q7xy9ew7qmt1$.1w6mvmyweo4rv.dlg@40tude.net...
> Witam
>
> Zacząłem bawić się VS2008 i na dzień dobry mam problem z dostępem do
> danych
> w bazie access'a.
>
> Otóż w programie chciałbym (mniejsza o powody) sprawdzić, czy użytkownik
> zalogował się poprawnie pobierając dane z tabel w bazie access'a:
>
> baza o nazwie "baza1.mdb", tabela "tblUsers", pola "username" i
> "password".
>
> Niezbyt podoba mi się dołączanie bazy za pomocą "klikania" w VS, wolałbym
> ręcznie zdefiniować połączenie, wysłać zapytanie SQL i sprawdzić wyniki za
> pomocą recordset'u... No i właśnie z tym mam problem...
>
> Jak na razie udało mi się "sklecić" coś takiego:
>
> Dim user As String
> Dim pass As String
> Dim ssql As String
> Public appPath As String = Environment.CurrentDirectory
> Dim connectionString As String
> Dim da As New OleDb.OleDbDataAdapter '(ssql, myConnection)
> Dim path As String
> Dim ds As New DataSet
> Dim myConnection As System.Data.OleDb.OleDbConnection
>
> Private Sub OK_Click(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles OK.Click
> user = txtUsername.Text
> pass = txtPassword.Text
> path = appPath & "\baza1.mdb"
> connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="
> & path & ";Mode=Share Deny None;Persist Security Info=True"
>
> ssql = "Select * from tblUsers Where LoginID = '" & user & "' and
> password = '" & pass & "'"
> myConnection = New OleDb.OleDbConnection(connectionString)
> myConnection.Open()
> da = New System.Data.OleDb.OleDbDataAdapter(ssql, myConnection)
> da.Fill(ds, "tblUsers")
>
> Dim tabela As DataColumn = ds.Tables("tblUsers").Columns("username)
> Dim tabela2 As DataColumn =
> ds.Tables("tblUsers").Columns("password")
> myConnection.Close()
>
> ' I tutaj nie wiem jak sprawdzić czy i jakie dane są w ds...
>
> Me.Hide()
> frmMain.Show()
> End Sub
>
> No i właśnie... W tym przypadku, wynikiem pozytywnym będzie, jeżeli będzie
> zwrócony jeden rekord, ale jak to sprawdzić? Dodatkowo, chciałbym odczytać
> zawartość innych pól z tego rekordu (np. powiedzmy "role", które to pole
> też znajduje się w tym rekordzie.
>
> Szukałem w googlach, ale moje zrozumienie jest chyba niewystarczające...
>
> Pozdrawiam i dzięki za odpowiedzi.
>
>
> --
> -------------------------------
> Pozdrawiam
> Krzysztof P.
> Member of Polish BOINC Society
> Member of Boinc@Poland Team
>
>
Re: VS2008 i MS Access (długie)
Author: krzyszp
Date: Sun, 26 Jul 2009 18:04
Date: Sun, 26 Jul 2009 18:04
5 lines
1505 bytes
1505 bytes
Dzięki, właśnie o to chodziło :-) Pozdrawiam Krzysiek
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads