Veri tabanı işlemleri içiren basit bir program yazdım. Virgüllü sayıları grid üzerinden girdiğimde kayıt düğmesine basıyorum, kural ihlali diye hata veriyor, durduruyor programın çalışmasını. Hata mesajının tamamı altta.
----------------
An unhandled exception of type 'System.Data.DBConcurrencyException' occurred in System.Data.dll
Additional information: Tutarlılık ihlali: UpdateCommand, beklenen 1 kaydın 0 kaydını etkiledi.
---------------------
Veri tabanını açıp elimle virgüllü sayı giriyorum, ekranda sorunsuz gösteriyor, programdan değiştirp kaydetmeye çalışınca yine hata veriyor. Manuel oledataadapter, oledatacommand tanımlarım. parametreleri tanımladım, parameters value olarak girdim verileri. veri tabanına sql i göndermeden kontrol ettiğimde WHERE abc= 1.2 yazması gerekirken WHERE abc=1,2 yazdığını görüyorum. Bundan dolayı hata veriyor galiba. Bu sorunu nasıl çözebilirim?
Teşekküler
veri tabanı işleminde nokta virgül hatası [Güncel]
veri tabanı işleminde nokta virgül hatası [Güncel]
En son mkysoft tarafından 19 Kas 2009 08:29 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
- sabanakman
- Kıdemli Üye
- Mesajlar: 3077
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: veri tabanı işleminde nokta virgül hatası
Bildiğim kadarıyla SQL dilinde ondalıklı sayılar sadece nokta ile ifade edilebiliyor. İşin içine virgül karışınca çoklu değer olarak ele alınmaktadır.gibi. Virgülü noktaya çevirip kullanmak reel sayı kullanımına çözüm olacaktır.
Kod: Tümünü seç
select * from tablo where id in (1,2)
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: veri tabanı işleminde nokta virgül hatası
teşekkürler @sabanakman, bunu bende biliyorum ancak bu dönüşümü tıpkı delphideki gibi C#'ın datatable nesnesi yapmalı, ben neden uğraşayımki? Ben sonuçta SQL 'i text olarak göndermiyorum, parameters ile parametreleri belirtiyorum, gerisi dil'e kalmalı. Bir kaç yere daha sordum, bir kaç telefon görüşmesi yaptım. Telefondakilerden biri, çevirimi kendimin yapmam gerektiğini söyledi. Bununla ben uğraşacaksam C#'ın ne anlamı kalırkı
Re: veri tabanı işleminde nokta virgül hatası
s.a.
parametreye değer atamasını nazıl yapıyorsunuz peki?
parametreye değer atamasını nazıl yapıyorsunuz peki?
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Re: veri tabanı işleminde nokta virgül hatası
Kod: Tümünü seç
sql.CommandText = "SELECT * FROM TblCaplar WHERE Cap = @Cap AND EtKalinlik = @EtKalinlik";
sql.Parameters.Add("@Cap", OleDbType.Decimal);
sql.Parameters["@Cap"].Value = Convert.ToDouble(Cap);
sql.Parameters.Add("@EtKalinlik", OleDbType.Decimal);
sql.Parameters["@EtKalinlik"].Value = Convert.ToDouble(EtKalinlik);
OleDbDataAdapter Sda = new OleDbDataAdapter();
Sda.SelectCommand = sql;
Sda = sql.ExecuteReader();
Kod: Tümünü seç
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Tanimlar.mdb
teşekkürler.
Re: veri tabanı işleminde nokta virgül hatası
"EtKalinlik" ın tipi nedir nerde tanımlamıştır?sql.Parameters["@EtKalinlik"].Value = Convert.ToDouble(EtKalinlik);
eğer string ise convert ederken IFormatprovider tanımlarsan "." - "," işini halledebilirsin gibime geliyor.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Re: veri tabanı işleminde nokta virgül hatası
Object tipinde tanımlamışım:
Bu değeri stringe çevirip tabiki virgülden den noktaya dönüşüm yapabilirim, datagridleri ne yapacağım?
Telefona bilgi aldığım kişi, dataadapterların post işlermine müdehale edip düzeltmeleri genel hale getirebileceğimi söyledi. Bu hata ile ilk karşılaşan ben miyim, anlamadım.
Kod: Tümünü seç
object EtKalinlik = GrdSiparisler.Rows[i].Cells["EtKalinlik"].Value;
Telefona bilgi aldığım kişi, dataadapterların post işlermine müdehale edip düzeltmeleri genel hale getirebileceğimi söyledi. Bu hata ile ilk karşılaşan ben miyim, anlamadım.