VB 2005 ile MySql Odbc kullanarak bağlanmak
st1\:*{behavior:url(#ieooui) }
" İlk olarak programda bir modul eklemeyi tavsiye ediyorum. böylece bağlantı birimlerini tek bir modül altında taoplamak, program yazma esnasında ve kotrolunde çok işinize yarayacaktır. Bu sayede fonksiyonları Public tanımlamanız programın herhangi bir yerinden bu fonkiyonlara erişmeniz ve çalıştırmanız için en uygun yollardan biri olabilir.
Imports System.Data.Odbc
Imports System.IO
Imports Microsoft.VisualBasic
Imports System
Imports System.Drawing.Printing
Module MySQL ‘modül ismi olarak MySql kullandım
Public MyConString As String = "DRIVER={MySQL ODBC 3.51 DRIVER};" & _
"SERVER=192.168.0.1;" & _
"DATABASE=db_test;" & _
"UID=user;" & _
"PASSWORD=pass;" & _
"CHARSET=utf8;" & _
"OPTION=3;"
Public MyConnection As New OdbcConnection(MyConString)
Public MyCommand As New OdbcCommand()
Public MyDataReader As OdbcDataReader
"bu aşağıdaki fonksiyon bağlanmak istediğin anda çağırıp, database programın bağlanmasını sağlayabilirsiniz.
Public Sub MySQL_Baglan()
Try
MyConnection.Open()
Catch ex As OdbcException
GelHata(ex.Message)
MyConnection.Close()
End Try
End Sub
"kur yükle diye bir fonksiyon atıyorum buraya. database den kur bilgileri alıp gerekli yerlere atayabilirsin
"not: asadaki kodda dönen değerler frmAna formunun içindeki labellar içine dönmektedir.
"not2: aşadaki örnek çok verili bir erişim yöndemidir.
Public Sub kur_yukle()
Try
MyCommand.Connection = MyConnection
MyCommand.CommandText = "SELECT * FROM currency WHERE tarih=" & Format(Date.Today, "yyyyMMdd")
MyDataReader = MyCommand5.ExecuteReader
While MyDataReader.Read
frmAna.lblDolar.Text = MyDataReader("rate_usd")
frmAna.lblEuro.Text = MyDataReader("rate_euro")
frmAna.lblSterlin.Text = MyDataReader("rate_str")
End While
Catch ex As OdbcException
MsgBox(ex.Message)
End Try
If MyDataReader.HasRows = False Then ‘burda çağırdığımız viri yok ise değer atıyorum
frmAna.lblDolar.Text = "0.00"
frmAna.lblEuro.Text = "0.00"
frmAna.lblSterlin.Text = "0.00"
End If
MyDataReader.Close()
End Sub
"burdaki de tek verili bir sql queridir. Eğer tek değer dönecek ise bu tarz bir sorgu kullanabilirsiniz.
Public Sub veri_yukle()
Dim x As Integer
MyCommand.Connection = MyConnection
MyCommand.CommandText = "SELECT count(*) FROM sabitler "
x = MyCommand.ExecuteScalar()
End Sub
"insert örneği
Public Sub bilgigir()
MyCommand.Connection = MyConnection
If txtDolar.Text = Nothing Then
txtDolar.Text = 0
End If
If txtEuro.Text = Nothing Then
txtEuro.Text = 0
End If
If txtSterlin.Text = Nothing Then
txtSterlin.Text = 0
End If
MyCommand.CommandText = "INSERT INTO currency ( rate_usd , rate_euro , rate_str , tarih ) " & _
"VALUES ("" & txtDolar.Text & "", "" & txtEuro.Text & "", "" & txtSterlin.Text & "","" & Format(dtTarih.Value, "yyyy-MM-dd") & "")"
MyCommand.ExecuteNonQuery()
End Sub
"update örneği
Public Sub guncelle()
If txtDolar.Text = Nothing Then
txtDolar.Text = 0
End If
If txtEuro.Text = Nothing Then
txtEuro.Text = 0
End If
If txtSterlin.Text = Nothing Then
txtSterlin.Text = 0
End If
MyCommand.CommandText = "UPDATE currency SET rate_usd="" & txtDolar.Text & "", rate_euro="" & txtEuro.Text & "",rate_str= "" & txtSterlin.Text & "" WHERE tarih=" & Format(Date.Today, "yyyyMMdd")
MyCommand.ExecuteNonQuery()
End Sub
End Module
"programın gerekli yerlerini istediğiniz gibi ayarladıktan sonra programı kuracağınız bilgisayara odbc driver kurmanız gerekmektedir. Bu driveri mysql in sitedinden downloads odbc driver 3.51 olarak bulabilirdiniz. Bu yöntemle DNS tanımlamadan direk olarak bağlantı ayarlarını program içerisinden verek bağlanmak mümkün olacaktır.
VB 2005 ile MySQL’e ODBC Kullanrak Bağlanmak
Kaydol:
Kayıt Yorumları (Atom)
Hiç yorum yok:
Yorum Gönder