Zdravím všechny. Zkouším udělat ve VB ve VS2008 takovou malou databázovou aplikaci. Používám konektor do MySQL, kde mám DB program a v ní tabulky authorize a operations. Mám udělaný dataset a umím si v tableadapteru nastavit vlastní SELECT a vypsat do gridu. V tabulce authorize mám sloupce ID, pass a account a ověřuji nad ní uživatele, který zadá přihlašovací jméno a heslo. Vyřešil jsem to zatím takto:
Imports MySql.Data.MySqlClient
Imports System.Data
Public Class LoginForm1
Public conn As MySqlConnection
Public myCommand As New MySqlCommand
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
Dim SQL As String
Dim authorizeAdapter As New programDataSetTableAdapters.authorizeTableAdapter
Dim ReturnedCount As Integer
SQL = "SELECT * FROM program.authorize WHERE (ID LIKE '" & UsernameTextBox.Text & "') AND (Pass LIKE '" & PasswordTextBox.Text & "')"
myCommand.Connection = authorizeAdapter.Connection
myCommand.CommandText = SQL
Try
myCommand.Connection.Open()
authorizeAdapter.Adapter.SelectCommand = myCommand
ProgramDataSet.Tables("authorize").Rows.Clear()
authorizeAdapter.Adapter.Fill(ProgramDataSet, "authorize")
ReturnedCount = ProgramDataSet.Tables("authorize").Rows.Count
authorizeAdapter.Connection.Close()
Catch myerror As MySqlException
MessageBox.Show("Chyba připojení k databázi: " & myerror.Message, "Připojení k Databázi", MessageBoxButtons.OK, MessageBoxIcon.Information)
Finally
authorizeAdapter.Connection.Dispose()
End Try
If ReturnedCount <> 1 Then
MessageBox.Show("Přihlašovací údaje nesouhlasí! Zkuste se přihlásit znovu. Error: " & ReturnedCount, "Přihlašovací údaje", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Else
MessageBox.Show("Hodnota proměnné Test: " & test, "Test", MessageBoxButtons.OK, MessageBoxIcon.Information)
Me.Close()
End If
End Sub
Ověření řeším SELECTem a zjištěním počtu vracených řádků. Zároveň bych chtěl získat do proměnné (typ string) hodnotu ze sloupce account, ale tady už bohužel nevím jak. Budu vděčný za každou radu, jak na to. Princip by měl asi být stejný i pro jiné DB, ne? Taky vím, že kód, který mám není asi nic moc a šlo by to vymyslet i líp. Takže pokud by mi někdo poradil i v tomhle nebudu se bránit. ;-) Předem díky.
|