Kod bloğum aşağıda
"Bağlantı kapatılmadı. Bağlantının geçerli durumu: açık." hatası veriyor
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim sayi1 As Integer
sayi1 = CInt(TextBox2.Text)
TextBox2.Text = sayi1.ToString("C")
SetMyCustomFormat()
bag.Open()
kmt.CommandText = "SELECT Count(id) from koop"
Dim a As Integer
Dim idsorgu
a = kmt.ExecuteScalar()
idsorgu = "SELECT id from koop"
kmt = New OleDbCommand(idsorgu, bag)
Dim reader As OleDbDataReader = kmt.ExecuteReader()
Dim b As Integer
Dim sorgu
Dim c
For b = 1 To a
reader.Read()
sorgu = " SELECT plaka from koop where id=(" & reader(0).ToString() & ")"
kmt = New OleDbCommand(sorgu, bag)
c = kmt.ExecuteScalar()
kmt.CommandText = "INSERT INTO aidat(plaka, MakbuzNo, Tarih, Miktar,Donem) VALUES ('" & c.ToString() & "','" & TextBox1.Text & "','" & DateTimePicker1.Text & "','" & TextBox2.Text & "','" & TextBox3.Text & "') "
kmt.ExecuteNonQuery()
uret()
Next
bag.Close()
uret()
End Sub
Sub uret()
Randomize()
Dim sayi1 = Format(Now, "yyyy") & Int(Rnd(1) * (100000))
Dim ure
TextBox1.Text = sayi1
Dim Makbuzno = TextBox1.Text
kmt.Connection = bag
bag.Open()
ure = "Select Makbuzno From aidat Where Makbuzno=" + TextBox1.Text + " "
kmt = New OleDbCommand(ure, bag)
Dim dr As OleDbDataReader
dr = kmt.ExecuteReader
Do While dr.Read
If dr("Makbuzno") = Makbuzno Then
Randomize()
sayi1 = Format(Now, "yyyy") & Int(Rnd(1) * (100000))
TextBox1.Text = sayi1
End If
Loop
bag.Close()
End Sub
Toplam 1 cevap
Connection yani bağlantı masraflı bir işlemdir. Yani sistem kaynaklarını meşgul eder ve tüketir.
O sebepten bir bağlantı açtığında olabildiğince kısa sürede kapatman gerekir.
Bağlantıyı açtıkdan sonra bağlantı açıkken, aşağıdaki gibi değişken tanımlama, atama yapma gibi işlemleri yapmamalısın.
SetMyCustomFormat()
bag.Open()
kmt.CommandText = "SELECT Count(id) from koop"
Dim a As Integer
Dim idsorguBunları bağlantının dışında yapmalısın.
degiskenTanimla atamaYap ...... ...... ...... baglanti.Ac baglantiUzerindenSorgunuCalistir baglantiKapat ......
Eğer sorgu sonucunda veritabanından dönen değer varsa bunu Dataset, datatable gibi bağlantısız çalışacak bir nesne üzerine doldurmalısın. Daha sonra bu veri üzerinde işlem yapmalısın.
Bağlantın açıkken (Buton1 click olayında) sen yine başka bir bağlantı açılıyorsun(uret).
Bu yüzden Bağlantı kapatılmadı. Bağlantının geçerli durumu: açık. hatası alıyorsun.