decimal değer toplamında virgül sorunu?

C# (C Sharp) veya Java ile ilgili konuları buraya yazabilirsiniz.
Cevapla
Kullanıcı avatarı
metemete
Üye
Mesajlar: 422
Kayıt: 21 Mar 2004 12:30
Konum: samsun
İletişim:

decimal değer toplamında virgül sorunu?

Mesaj gönderen metemete »

Hata oluştu: There are fewer columns in the INSERT statement than values specified in the VALUES clause. The number of values in the VALUES clause must match the number of columns specified in the INSERT statement.

Kod: Tümünü seç

foreach (System.Web.UI.WebControls.DataGridItem item in
                    grdBasketContents.Items)
                {
                    string cmdText = "Insert into STOK_HAREKET (KOD,ACIKLAMA,HTIPI,CARI_KOD,FIYAT,MIKTAR) values ('" +
                        item.Cells[1].Text + "','" + item.Cells[2].Text + "','Sipariş','" + user.CariKod.ToString() + "'," +
                        item.Cells[5].Text + "," + ((TextBox)item.FindControl("txtAmount")).Text + ")";
                    SqlConnection conn = new SqlConnection(connString);
                    //	Response.Write(cmdText+"<br>");
                    conn.Open();
                    SqlCommand cmd = new SqlCommand(cmdText, conn);
                    cmd.ExecuteReader
                }
      
item.cell[5] in değeri tam sayı ise hata vermiyor ama ondalık sayı oldugunda ise bu hatayı veriyor. nedeni de sanırım ondalık ayıracı ekranda virgül nokta olsa sorun vermıcek .
yani şöle

Kod: Tümünü seç

string cmdText = "Insert into STOK_HAREKET (KOD,ACIKLAMA,HTIPI,CARI_KOD,FIYAT,MIKTAR) values ('" +
                        item.Cells[1].Text + "','" + item.Cells[2].Text + "','Sipariş','" + user.CariKod.ToString() + "'," +
                         "123.4," + ((TextBox)item.FindControl("txtAmount")).Text + ")";
nasıl çözebiliriz??
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: decimal değer toplamında virgül sorunu?

Mesaj gönderen aslangeri »

s.a.
sorunu doğru teşhis etmişsin.
iki seçenek var biri sql i oluşturmadan önce değeri kontrol edip "," leri "." yapacaksın.
diğeride parametre kullanacaksın.
hangisini kullanacağını sen seç.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
ahmethakan
Üye
Mesajlar: 30
Kayıt: 03 Eki 2005 05:26
Konum: istanbul

Re: decimal değer toplamında virgül sorunu?

Mesaj gönderen ahmethakan »

yazmış olduğun programı şu sekilde değiştirdim txt olan yerleri değiştirisin


foreach (DataGridItem item in grdBasketContents.Items)
{
string cmdText = @"Insert into STOK_HAREKET (KOD,ACIKLAMA,HTIPI,CARI_KOD,FIYAT,MIKTAR)
values (@KOD,@ACIKLAMA,@HTIPI,@CARI_KOD,@FIYAT,@MIKTAR)";
SqlConnection conn = new SqlConnection(connString);
conn.Open();
SqlCommand cmd = new SqlCommand(cmdText, conn);
cmd.Parameters.AddWithValue("@KOD",Convert.ToInt32(txtKod.Text()));
cmd.Parameters.AddWithValue("@ACIKLAMA",txtAciklama.Text);
cmd.Parameters.AddWithValue("@HTIPI",txtHesapTipi.Text);
cmd.Parameters.AddWithValue("@CARI_KOD",Convert.ToInt32(txtCariKod.Text)));
cmd.Parameters.AddWithValue("@FIYAT",Convert.ToDecimal(txtFiyat.Text)));
cmd.Parameters.AddWithValue("@MIKTAR",Convert.ToInt32(txtMiktar.Text));
cmd.ExecuteNonQuery();
conn.Close();
cmd.Dispose();
}
Cevapla