Skip to main content

AccessTr.neT


Bir den fazla tabloya Update yapma.

Bir den fazla tabloya Update yapma.

Çözüldü #1
Aşağıdaki kodlar yardımı ile bir form üzerinden ayrı 3 tabloya kayıt yapabiliyorum fakat güncelleme yaptığım zaman ilk döngüde güncelleme yapıyor fakat adres bilgilerine geldiği zaman hata veriyor kodlarda bir yanlışım varmı acaba..

tablo adı kolon adları doğru defalarca kontrol ettim textbox larda doğru kod da mi hata var.




 Dim Sor As Integer
Try

If Me.TextBox1.Text = "" Or Me.ComboBox2.Text = "" Or Me.ComboBox3.Text = "" Or Me.ComboBox4.Text = "" Or Me.TextBox5.Text = "" Or Me.TextBox6.Text = "" Or Me.TextBox7.Text = "" Or Me.ComboBox5.Text = "" Or Me.TextBox9.Text = "" Or Me.ComboBox6.Text = "" Or Me.TextBox11.Text = "" Or Me.TextBox12.Text = "" Or Me.TextBox13.Text = "" Then
MsgBox("Seçilmesi Gereken Alanlardan Bir veya Birkaçını Seçmedin.", MsgBoxStyle.Exclamation, "Kayıt Uyarı")
Else
Dim data As New String("UPDATE konut_kayit SET konut_durumu='" + ComboBox2.Text + "',turu='" + ComboBox3.Text + "',sinifi='" + ComboBox4.Text + "',ulasim='" + TextBox5.Text + "',konut_yasi=" + TextBox6.Text + ",kat_sayisi=" + TextBox7.Text + ",isinma_sekli='" + ComboBox5.Text + "',buyuklugu=" + TextBox9.Text + ",oda_sayisi=" + ComboBox6.Text + ",kacinci_kat=" + TextBox11.Text + ",bahcesi='" + TextBox12.Text + "',fiyat=" + TextBox13.Text + " WHERE konut_no=" + TextBox1.Text + " ")
data = String.Format(data, TextBox1.Text, TextBox2.Text)
Dim baglanti As New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=|DataDirectory|\KonutKayıt.accdb; Persist Security Info=False;")
Dim komutnesnesi As New OleDb.OleDbCommand(data, baglanti)
Dim sonuc As Integer
baglanti.Open()
sonuc = komutnesnesi.ExecuteNonQuery()
If sonuc = 1 Then
MsgBox("Konut Bilgileri Kayıt Güncellenmiştir.", MsgBoxStyle.Exclamation, "Kayıt İşlemi")
baglanti.Close()
End If
End If

Sor = MsgBox("Adres Bilgileri Güncellensin mi ?", vbYesNo)

If Sor = vbYes Then

If Me.TextBox2.Text = "" Or Me.TextBox3.Text = "" Or Me.TextBox4.Text = "" Or Me.TextBox8.Text = "" Or Me.TextBox10.Text = "" Or Me.TextBox14.Text = "" Or Me.TextBox15.Text = "" Or Me.TextBox16.Text = "" Or Me.TextBox17.Text = "" Or Me.TextBox18.Text = "" Or Me.TextBox19.Text = "" Then
MsgBox("Seçilmesi Gereken Alanlardan Bir veya Birkaçını Seçmedin.", MsgBoxStyle.Exclamation, "Kayıt Uyarı")
Else
Dim data As New String("UPDATE adres_bilgileri SET semt='" + TextBox3.Text + "',mahalle='" + TextBox4.Text + "',cadde='" + TextBox8.Text + "',sokak='" + TextBox10.Text + "',daire_no=" + TextBox14.Text + ",no1=" + TextBox15.Text + ",acik_adres='" + TextBox16.Text + "',ulke='" + TextBox17.Text + "',il='" + TextBox18.Text + "'',ilce='" + TextBox19.Text + "' WHERE konut_adi='" + TextBox2.Text + "' ")
data = String.Format(data, TextBox3.Text, TextBox4.Text)
Dim baglanti As New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=|DataDirectory|\KonutKayıt.accdb; Persist Security Info=False;")
Dim komutnesnesi As New OleDb.OleDbCommand(data, baglanti)
Dim sonuc As Integer
baglanti.Open()
sonuc = komutnesnesi.ExecuteNonQuery()
If sonuc = 1 Then
MsgBox("Adres Bilgileri Kayıt Olmuştur.", MsgBoxStyle.Exclamation, "Kayıt İşlemi")
baglanti.Close()
End If
End If

End If

Sor = MsgBox("Müşteri Bilgileri Kayıt Yapılsın mı ?", vbYesNo)

If Sor = vbYes Then

If Me.TextBox20.Text = "" Or Me.TextBox21.Text = "" Or Me.TextBox22.Text = "" Or Me.TextBox23.Text = "" Or Me.TextBox24.Text = "" Or Me.TextBox25.Text = "" Then
MsgBox("Seçilmesi Gereken Alanlardan Bir veya Birkaçını Seçmedin.", MsgBoxStyle.Exclamation, "Kayıt Uyarı")
Else
Dim data As New String("UPDATE musteri_bilgileri SET ad_soyad='" + TextBox21.Text + "',gsm1=" + TextBox22.Text + ",gsm2=" + TextBox23.Text + ",adres='" + TextBox24.Text + "',extra_not2='" + TextBox25.Text + "' WHERE musteri_no=" + TextBox20.Text + "")
data = String.Format(data, TextBox3.Text, TextBox4.Text)
Dim baglanti As New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=|DataDirectory|\KonutKayıt.accdb; Persist Security Info=False;")
Dim komutnesnesi As New OleDb.OleDbCommand(data, baglanti)
Dim sonuc As Integer
baglanti.Open()
sonuc = komutnesnesi.ExecuteNonQuery()
If sonuc = 1 Then
MsgBox("Muşteri Bilgileri Kayıt Olmuştur.", MsgBoxStyle.Exclamation, "Kayıt İşlemi")
baglanti.Close()
Sil1()
End If
End If

End If

Catch ex As Exception
MsgBox("Bir Hata Oluştu !!!!")
End Try
Cevapla
Çözüldü #2
1- İkinci Sql cümlenizde WHERE şartını belirtmemişsiniz.
2- Catch ex As Exception
MsgBox("Bir Hata Oluştu !!!!")
End Try
gibi bir hata yakalama sistemi kullanacaksanız ex isimli değişkeni kullanmamak büyük hata olabilir. En azından Debug modda çalışırken Msgbox ex.Message şeklinde hata açıklamasını yazdırabilirsiniz. ex.Message dedim ancak ezbere yazdım Vb.Net te en azından buna benzer bir şekilde kullanılıyordur. Hatanızı daha net anlayabilirsiniz.
3- Kullandığınız semt='" + TextBox3.Text + "' şeklindeki ifadeler program güvenliği açısından ciddi tehlike arz eder. Bu şekilde başka kullanıcılar sizin hesabınızla işlem yapabildiği gibi, hesaplarda oynama yapabilir hatta tüm veritabanını silebilir. Bundan dolayı parametreli şekilde çalışırsanız daha iyi olacaktır.
AccessTr.Net teknik konular içeren bir sitedir. Bu tip sitelerde en iyi şekilde yardım alabilmeniz için Site Kurallarını mutlaka okumanız ve buna göre hareket etmeniz lazım.
Cevapla
Çözüldü #3
(06/06/2013, 22:27)alpeki99 yazdı: 1- İkinci Sql cümlenizde WHERE şartını belirtmemişsiniz.
2- Catch ex As Exception
MsgBox("Bir Hata Oluştu !!!!")
End Try
gibi bir hata yakalama sistemi kullanacaksanız ex isimli değişkeni kullanmamak büyük hata olabilir. En azından Debug modda çalışırken Msgbox ex.Message şeklinde hata açıklamasını yazdırabilirsiniz. ex.Message dedim ancak ezbere yazdım Vb.Net te en azından buna benzer bir şekilde kullanılıyordur. Hatanızı daha net anlayabilirsiniz.
3- Kullandığınız semt='" + TextBox3.Text + "' şeklindeki ifadeler program güvenliği açısından ciddi tehlike arz eder. Bu şekilde başka kullanıcılar sizin hesabınızla işlem yapabildiği gibi, hesaplarda oynama yapabilir hatta tüm veritabanını silebilir. Bundan dolayı parametreli şekilde çalışırsanız daha iyi olacaktır.


vb.net yeni başladığım okulda 6.0 gösteriyorlar ben projeyi 2010 yapmak istedim böyle devam ettim diğer yolu öğrenincede o kadar kodu değiştirmeye erindim açıkçası. ikinci 2. sgl cümlemde where sorgusu en sonda ilk Sql cümlemde olduğu gibi.

Tamam sorun çözüldü il='"+textbox18.text+"' tek tırnak fazladan koymuşum Lol gözden kaçmış her şey için teşekkür ederim...
Sorun Çözüldü.....
Son Düzenleme: 06/06/2013, 22:47, Düzenleyen: oztuncla.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da