Cengizhan Şahin
Cengizhan Şahin

Reputation: 11

Visual Basic, SQL cannot be closed

I'm doing VB project for my exam but when I start my code it says

Hata occurred. Error: Connection could not be closed, connection state is open.

Here is my code:

Imports System.Collections.ObjectModel
Imports System.Data.SqlClient

Public Class Form1
    Private SqlBaglanti As New SqlConnection(SqlBaglantiCumlesi())
    Private OgrenciBilgileriSqlDA As SqlDataAdapter

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Try
            SqlBaglanti.Open()
            OgrenciBilgileriniGetir()
            Dim Sorgu As String = "SELECT * FROM OgrenciTablo"

            ' SqlDataAdapter oluşturun
            OgrenciBilgileriSqlDA = New SqlDataAdapter(Sorgu, SqlBaglanti)

            ' SqlCommandBuilder kullanarak Insert, Update ve Delete komutlarını otomatik oluşturun
            Dim SqlKomutOlusturucu As New SqlCommandBuilder(OgrenciBilgileriSqlDA)
            OgrenciBilgileriSqlDA.InsertCommand = SqlKomutOlusturucu.GetInsertCommand
            OgrenciBilgileriSqlDA.UpdateCommand = SqlKomutOlusturucu.GetUpdateCommand
            OgrenciBilgileriSqlDA.DeleteCommand = SqlKomutOlusturucu.GetDeleteCommand

            ' DataSet'i doldurun
            OgrenciBilgileriSqlDA.Fill(CengizhanOkulVTDS, "OgrenciTablo")
            OgrenciTabloBS.DataSource = CengizhanOkulVTDS.Tables("OgrenciTablo")
        Catch ex As Exception
            MessageBox.Show("Hata Oluştu.Lütfen Sistem Yöneticiniz ile bağlantı kurunuz. Hata: " & ex.Message, "Hata")
        Finally
            SqlBaglanti.Close()
        End Try
    End Sub

    Private Sub btnKaydet_Click(sender As Object, e As EventArgs) Handles btnKaydet.Click
        VTyeKaydet()
    End Sub

    Private Sub btnSil_Click(sender As Object, e As EventArgs) Handles btnSil.Click
        Dim Satir As DataRowView = OgrenciTabloBS.Current
        Dim Mesaj As String = String.Format("{0} {1} isimli Öğrenciyi silmek istediğinize emin misiniz?", Satir("Adi"), Satir("Soyadi"))
        If MessageBox.Show(Mesaj, "Uyarı", MessageBoxButtons.YesNo, MessageBoxIcon.None, MessageBoxDefaultButton.Button2) = DialogResult.Yes Then
            OgrenciTabloBS.RemoveCurrent()
            VTyeKaydet()
        End If
    End Sub

    Private Sub VTyeKaydet()
        Try
            Me.Validate()
            OgrenciTabloBS.EndEdit()
            If OgrenciBilgileriSqlDA.Update(CengizhanOkulVTDS, "OgrenciTablo") > 0 Then
                MessageBox.Show("Yapılan tüm değişiklikler başarı ile kaydedildi.", "Bilgi")
                ' ButonlariKullan() fonksiyonunu eklemiş olmanız gerekiyor
            End If
        Catch ex As Exception
            MessageBox.Show("Hata oluştu. Hata: " & ex.Message, "Hata")

        End Try
    End Sub

    Private Sub OgrenciBilgileriniGetir()
        Dim Sorgu As String = "SELECT * FROM OgrenciTablo"
        Dim SqlKomut As New SqlCommand(Sorgu, SqlBaglanti)

        Try
            SqlBaglanti.Open()

            If Not CengizhanOkulVTDS.Tables.Contains("OgrenciTablo") Then
                CengizhanOkulVTDS.Tables.Add("OgrenciTablo")
            Else
                CengizhanOkulVTDS.Tables("OgrenciTablo").Clear()
            End If

            OgrenciBilgileriSqlDA.Fill(CengizhanOkulVTDS, "OgrenciTablo")
            OgrenciTabloBS.DataSource = CengizhanOkulVTDS.Tables("OgrenciTablo")
        Catch ex As Exception
            MessageBox.Show("Hata oluştu. Hata: " & ex.Message, "Hata")
        Finally
            SqlBaglanti.Close()
        End Try
    End Sub
End Class

I am trying to start my VB code, and I am trying to add data with form application to SQL Server

Upvotes: 1

Views: 72

Answers (0)

Related Questions