Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

vb.net accsess veri tabanına bağlantı hata

Konu, 'Visual Basic' kısmında KeySilver tarafından paylaşıldı.

  1. KeySilver

    KeySilver Yeni Üye

    Kayıt:
    29 Nisan 2016
    Mesajlar:
    8
    Beğenilen Mesajlar:
    0
    Şehir:
    istanbul
    selamün aleyküm arkadaşlar veri tabanında çok fena bir hataya yakalandım çözümü bilenler mesaj atarsa sevinirim
    hata:
    The connection was not closed. The connection’s current state is open.
    immediate windows penceresi hatası:at System.Threading.ThreadHelper.ThreadStart()</ExceptionString></Exception></TraceRecord>

    kodlar:
    Imports System.Data
    Imports System.Data.OleDb
    Public Class Form1
    Dim baglanti As New OleDbConnection("provider= Microsoft.ace.oledb.12.0; Data source= database 1.accdb")
    Dim sonuc As String
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    If TextBox1.Text = "" Or TextBox2.Text = "" Then
    MsgBox("Lütfen Bilgileri Giriniz")
    Else

    Dim komut As New OleDbCommand("insert into database 1(ad,soyad) values(’" + TextBox1.Text + "’,’" + TextBox2.Text + "’)", baglanti)
    baglanti.Open() 'hata burda
    komut.ExecuteNonQuery()
    komut.Dispose()
    baglanti.Close()

    MsgBox("kayit başarılı")
    listele()
    End If
    baglanti.Close()
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    listele()
    End Sub

    Private Sub listele()
    baglanti.Open()
    Dim komut As New OleDbDataAdapter("select * from kayit", baglanti)
    Dim ds As New DataSet
    komut.Fill(ds)
    DataGridView1.DataSource = ds.Tables(0)
    DataGridView1.DataSource = ds.Tables(0)
    DataGridView1.Columns(0).HeaderText = "ad"
    DataGridView1.Columns(1).HeaderText = "soyad"
    baglanti.Close()
    End Sub
    End Class
     
  2. KeySilver

    KeySilver Yeni Üye

    Kayıt:
    29 Nisan 2016
    Mesajlar:
    8
    Beğenilen Mesajlar:
    0
    Şehir:
    istanbul
    selamün aleyküm arkadaşlar veri tabanında çok fena bir hataya yakalandım çözümü bilenler mesaj atarsa sevinirim
    hata:
    The connection was not closed. The connection’s current state is open.
    immediate windows penceresi hatası:at System.Threading.ThreadHelper.ThreadStart()</ExceptionString></Exception></TraceRecord>

    kodlar:
    Imports System.Data
    Imports System.Data.OleDb
    Public Class Form1
    Dim baglanti As New OleDbConnection("provider= Microsoft.ace.oledb.12.0; Data source= database 1.accdb")
    Dim sonuc As String
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    If TextBox1.Text = "" Or TextBox2.Text = "" Then
    MsgBox("Lütfen Bilgileri Giriniz")
    Else

    Dim komut As New OleDbCommand("insert into database 1(ad,soyad) values(’" + TextBox1.Text + "’,’" + TextBox2.Text + "’)", baglanti)
    baglanti.Open() 'hata burda
    komut.ExecuteNonQuery()
    komut.Dispose()
    baglanti.Close()

    MsgBox("kayit başarılı")
    listele()
    End If
    baglanti.Close()
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    listele()
    End Sub

    Private Sub listele()
    baglanti.Open()
    Dim komut As New OleDbDataAdapter("select * from kayit", baglanti)
    Dim ds As New DataSet
    komut.Fill(ds)
    DataGridView1.DataSource = ds.Tables(0)
    DataGridView1.DataSource = ds.Tables(0)
    DataGridView1.Columns(0).HeaderText = "ad"
    DataGridView1.Columns(1).HeaderText = "soyad"
    baglanti.Close()
    End Sub
    End Class
     
  3. yunus

    yunus Daimi Üye

    Kayıt:
    26 Şubat 2015
    Mesajlar:
    521
    Beğenilen Mesajlar:
    127
    şaka gibi. hatanın orra olduğunu nerden biliyon. form loadda listele fonksiyonu çalışıyo onun içindeki .open() da hata veriyor olamaz mı?
     
  4. sedirAğacı

    sedirAğacı Daimi Üye

    Kayıt:
    2 Mart 2016
    Mesajlar:
    903
    Beğenilen Mesajlar:
    237
    Meslek:
    Bilgisayar programcısı.
    Şehir:
    Aydın
    Açık olan bağlantıyı tekrar açmaya çalıştığında o hata ile kesilir.

    İki şey yapabilirsin. Ya her bağlantı açtığın fonksiyon girişinde "eğer bağlantı kapalıysa aç", satırı koyacaksın.
    Yada her bağlantı açtığın fonksiyon sonunda "bağlantı açıksa kapa diyeceksin". Ve bu komutu mutlaka görmesini sağlayacaksın. hata ile yada şarta bağlı bu komutu görmeden çıkmayacak.
    Yada proje girişinde bir kez bağlantı açıp, proje çıkışında kapayacaksınki ben hiç bunu kullanmadım...

    Bağlantı açık ise kapat, yada kapalıysa aç komutunun c# karşılığı bu sen VBye çevir.


    if (baglanti .State == ConnectionState.Closed) baglanti .Open(); // try{dan hemen sonra
    if (baglanti .State == ConnectionState.Open) baglanti .Close(); // finally bloğunda

    Al sana eski doklarımdan basit birde örnek... cmd2 sende bağlantı diye geçiyor. dr2 de data reader
    c# ve VB neredeyse birbirinin aynı o sebeple çevirmeye uğraşmadım... özür...

    Kod:
    public double selSumOverall(string myTableName, string myVariableName, string myWHERE, ref string errMsg)
            {
                errMsg = "";
                cmd2.Connection = conn2;
                cmd2.CommandText = "SELECT sum(" + myVariableName + ") " +
                                    " FROM " + myTableName +
                                   " WHERE " + myWHERE;
                try
                {
                    conn2.Open();
                    dr2 = cmd2.ExecuteReader();
    
                    if (dr2.Read())
                    {
                        if (dr2.GetValue(0) != DBNull.Value) return dr2.GetDouble(0);
                    }
                    return 0;
    
                }
                catch (Exception ex)
                {
                    errMsg = ex.Message;
                    return -1;
                }
                finally
                {
                    if (dr2 != null) dr2.Close();
                    if (conn2.State == ConnectionState.Open) conn2.Close();
                }
    
            }
    
     
  5. KeySilver

    KeySilver Yeni Üye

    Kayıt:
    29 Nisan 2016
    Mesajlar:
    8
    Beğenilen Mesajlar:
    0
    Şehir:
    istanbul
    biraz daha ayrınrılı söylermisin neyin yerine yazacaz
     
  6. sedirAğacı

    sedirAğacı Daimi Üye

    Kayıt:
    2 Mart 2016
    Mesajlar:
    903
    Beğenilen Mesajlar:
    237
    Meslek:
    Bilgisayar programcısı.
    Şehir:
    Aydın
    baglanti.Open()

    olan yerlere

    if (baglanti .State == ConnectionState.Closed) baglanti .Open();

    koymalısın.
     
  7. sedirAğacı

    sedirAğacı Daimi Üye

    Kayıt:
    2 Mart 2016
    Mesajlar:
    903
    Beğenilen Mesajlar:
    237
    Meslek:
    Bilgisayar programcısı.
    Şehir:
    Aydın
    Soru gelmediğine göre, ilk defa işe yarar bi cevap verdim...

    ooooleeeeeyyyy... :)
     
  8. KeySilver

    KeySilver Yeni Üye

    Kayıt:
    29 Nisan 2016
    Mesajlar:
    8
    Beğenilen Mesajlar:
    0
    Şehir:
    istanbul
    dur bi bakam
     
  9. KeySilver

    KeySilver Yeni Üye

    Kayıt:
    29 Nisan 2016
    Mesajlar:
    8
    Beğenilen Mesajlar:
    0
    Şehir:
    istanbul
    bir hata var == ikinci eşittir yanında hata veriyor bir tanesini kaldırıyom diğeri hata veriyor
     
  10. yunus

    yunus Daimi Üye

    Kayıt:
    26 Şubat 2015
    Mesajlar:
    521
    Beğenilen Mesajlar:
    127
    VB nin B sini bilmeden nasıl kod yazacaksın kardeş. sen önce ders notlarını bir baştan karıştır. syntax kurallarını da öğren. bu şekilde hiç bir sonuca varamazsın. ne yazdığını biliyorsun ne söyleneni anlıyorsun. akıntıya karşı kürek çekip duruyorsun. önce kürek nasıl çekilir biraz öğren. sonra birileri el atar destek olur.
     
  11. sedirAğacı

    sedirAğacı Daimi Üye

    Kayıt:
    2 Mart 2016
    Mesajlar:
    903
    Beğenilen Mesajlar:
    237
    Meslek:
    Bilgisayar programcısı.
    Şehir:
    Aydın
    yunus'da vurdumu öldürüyor... :)

    ben c# da yazdım VB karşılığını yaz demiştim... VB.NET karşılığınıda buldum koyuyorum hemen hemen aynı.
    Kod:
    If baglanti.State = ConnectionState.Closed Then
    
    'Bağlantıyı açmak
    
    baglanti.Open()
    
    
    End If
     
    yunus bunu beğendi.
  12. KeySilver

    KeySilver Yeni Üye

    Kayıt:
    29 Nisan 2016
    Mesajlar:
    8
    Beğenilen Mesajlar:
    0
    Şehir:
    istanbul
    yunus çok doğru söylüyorsun kardeşim ama insanın bir eğitmeni olmayınca nereden başlayacağını bilmiyor senin bu konuda bilgin varsa bana yol gösterirsen çok sevinirim skype yada face falan varsa sevinirim
     
  13. KeySilver

    KeySilver Yeni Üye

    Kayıt:
    29 Nisan 2016
    Mesajlar:
    8
    Beğenilen Mesajlar:
    0
    Şehir:
    istanbul
    sedirağacı kardeş sana gelince baglantı.open yerlerine yazdım ama şimdi
    komut.ExecuteNonQuery() de şu hatayı veriyor
    ExecuteNonQuery requires an open and available Connection. The connection's current state is closed.
    hatası veriyor
     
  14. sedirAğacı

    sedirAğacı Daimi Üye

    Kayıt:
    2 Mart 2016
    Mesajlar:
    903
    Beğenilen Mesajlar:
    237
    Meslek:
    Bilgisayar programcısı.
    Şehir:
    Aydın
    Bu seferde bağlantı kapalı demiş...
    hangi ExecuteNonQuery satırında o hata mesajını verdi ise, o satırın üstüne.

    If baglanti.State = ConnectionState.Closed Then
    baglanti.Open()
    end if


    koy...

    yalnız bunlar çok basit kısımlar... bunları kendi başına geçemiyorsan ilerde çok zorlanırsın...
    acelen yoksa bu tür sorunların cevaplarını bulmaya çalış. Bazen bir tek nokta karakteri eksik diye 3 gün aramışlığım uğraşmışlığım vardır... ararken hep başka şeyleride öğreniyorsun ve çözüyorsun...bu tür aramalar seni iyi programcı yapar.

    Ayrıca İngilizce karşılık için ben Google ın şu sayfasını kullanıyorum.
    Google Çeviri

    yazılanı anlamak için yeterli oluyor.
     
    KeySilver bunu beğendi.
  15. KeySilver

    KeySilver Yeni Üye

    Kayıt:
    29 Nisan 2016
    Mesajlar:
    8
    Beğenilen Mesajlar:
    0
    Şehir:
    istanbul
    skypen varmı acaba sedirağacı yada face bu hatalar bitmiyor hem de bana hangi kodların ne işe yaradığınıda anlatabilirsin ordan varsa verirsen sevinirim
     
  16. sedirAğacı

    sedirAğacı Daimi Üye

    Kayıt:
    2 Mart 2016
    Mesajlar:
    903
    Beğenilen Mesajlar:
    237
    Meslek:
    Bilgisayar programcısı.
    Şehir:
    Aydın
    @KeySilver facebooku 4 yıldır kullanmıyorum... telefonu yanımda taşımıyorum... whatsapp Skype messanger gibi hiç bir şeyi kurmadım kullanmadım.

    Yardım için pek vakit ayıramam, çünki bana kodlaması ağır gelen bir site yazmaya çalışıyorum. Beynim duman çıkarmaya başlayıncada buraya ve kısmetse olur sayfasına kafamı dağıtmak için giriyorum. :) :)
    Yani size kafamı dağıtmak için yardım etmeye çalışıyorum. :) Aşırıya kaçarsam işimi yapamam sitemi bitiremem. Önce yazacağım site ile bütün köşeleri dönmem lazım... sora sizin işlere bakarım...

    Birde şunu belirteyim. yazılımdan yeni emekliyim ama günde 10 saat ekran başındaysam, 4 saatini internette kod aramak ve çözümlemekle geçiriyorum. Ayrıca İngilizcem çok iyi olmadığından birde çeviri ile uğraşıyorum.

    Yani yazılımcılık böyle bir şey. Sürekli öğrenme ve araştırma ile geçen bir süreç... Ancak çok uğraşıpda bir türlü aşamadığın konuda yardım istemelisin. İşin raconu budur. ve soruyu kısa ve çok net sormazsan kimse cevap için uğraşmaz, herkesin işi çok...
     
    Son düzenleme: 4 Mayıs 2016
    yunus bunu beğendi.
  17. yunus

    yunus Daimi Üye

    Kayıt:
    26 Şubat 2015
    Mesajlar:
    521
    Beğenilen Mesajlar:
    127
    abi çok güzel dedin, tam düşünüp de ifade edemediğim şeyler. Ayrıca seninle aynı durumdayım.. bir yandan iş, bir yandan proje, arada da kafa dağıtmak için forumlarda takılıyorum.
     
    sedirAğacı bunu beğendi.