none
veri tabanına kayıt hatası ?? RRS feed

  • Soru

  • SqlConnection con = new SqlConnection("Data Source='....'; initial catalog='....';integrated security=true;");
    con.Open();

    SqlCommand cmd = new SqlCommand("insert into tabloadi (AKADEMIKUNVAN) values (@AKADEMIKUNVAN)", con);

    cmd.Parameters.AddWithValue("@AKADEMIK_UNVAN", ddl_AkademikUnvan.SelectedItem.Value); // dropdownlistten veritabanına kayıt ekleme

            try
                {

                    cmd.ExecuteScalar();
                    con.Close();


                }

                catch (Exception ex)
                {

                    Response.Write( ex.Message);
                }
                finally
                {
                    // 
                }

    arkaşlar ben burda ne hatası yapıyorum dropdownlisttee tutulan değerlerr (ankara,istanbul,mersin,...) ancak bunların sırasıyla 1,2,3,4 .. diye ID numarası var 1.tablodan verileri çekerken bu il isimlerinin ID leri var ancak 2. tablomda bunların isimleri yer alıyor ben bu şehir isimlerinin kullanarak 1.tabloma bunların ID lerini nasıl yazdırabilirim hata alıyorumm bi yardım lütfen

    19 Temmuz 2012 Perşembe 17:23

Yanıtlar

  • Merhaba Oğuz33;

    Tablolardaki Veri Tipleri bilmediğimiz için Mesela FAKULTE_TANIM tablosu için FAKNO'nun int , ACIKLAMA'nın nvarchar(250) (yada başka bir şey olduğunu varsayıyorum)

    ddl_Fakulte yi de Şu şekilde Doldurduğunuzu Varsayarsak

    ddl_Fakulte.DataSource = /*Herhangi Bir List yada DataTable*/
    ddl_Fakulte.DataTextField = "ACIKLAMA";
    ddl_Fakulte.DataValueField = "FAKNO";
    ddl_Fakulte.DataBind();

    PERSONEL Tablonuzdaki FAKNO column'unun VeriTipide int ise (FAKULTE_TANIM tablosundan Foreign Key ile bağladığınızı Varsayıyorum)

    Insert Komutunuzdaki

    //cmd.Parameters.AddWithValue("@FAKNO", ddl_Fakulte.Text);
    // yanlış olur bunun yerine
    cmd.Parameters.AddWithValue("@FAKNO", Convert.ToInt32(ddl_Fakulte.SelectedValue));
    // diyerek ddl_Fakulte nin SEÇİLMİŞ olan Metnin (Açıklamanın) ID sini OBJECT olarak alıp 
    // Fakulte Tablosundaki FAKNO'ya (int olduğunu varsaymışdım) Convert Ederek Elde Edip kullanabilirsiniz.
    şeklinde kullanırsanız Sorunun ortadan kalkacağına inanıyorum...


    Jesus Promised The End Of All Wicked People, ODIN Promised The End Of All Ice Giants. I Don't See Many Ice Giants Around... exe[nokta]cute[at]live[nokta]com


    • Düzenleyen Exe.Cute 20 Temmuz 2012 Cuma 12:18 Syntax
    • Yanıt Olarak İşaretleyen Oğuz ŞİŞMAN 20 Ağustos 2012 Pazartesi 07:24
    20 Temmuz 2012 Cuma 12:17

Tüm Yanıtlar

  • Biraz dikkat etmen lazım,

    parametren AKADEMIKUNVAN, sen AKADEMIK_UNVAN ile dolurmaya çalışmışsın

    Birde sorgu Scalar sorgu değil Nonquery


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
    MCC

    19 Temmuz 2012 Perşembe 19:21
    Moderatör
  • AKADEMIK_UNVAN'ı buraya yazarken öyle yazmışım normalde doğru.executescaler yerine nonquery yapsamda aynı hatayı alıyorum.
    20 Temmuz 2012 Cuma 06:07
  • sorunuz çok net değil. ne hatası alıyorsunuz?

    http://www.mehmetx.com

    20 Temmuz 2012 Cuma 08:48
    Yanıtlayıcı
  • kaydet butonuna tıkladığımda  hata... alıyorum.normalde dropdownlistteki tutulan değerler int olarak personel tablomda ancak onların isimlerini başka tablodan çekiyorum fakülte,bölüm vs 

    ekran görüntüm;

    kaydet butonuna basmadan önce

    ekleye tıkladıktan sonra

    resmi yüklerken farklı girdiğimden.veriler farklı olabilir 
    20 Temmuz 2012 Cuma 10:02
  • int kaydetmeniz gereken bir alana string kaydediyorsunuz.

    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
    MCC

    20 Temmuz 2012 Cuma 10:11
    Moderatör
  • önay bey tamam ama dropdownlistlerin int değerlerini çekemiyorum.

    kodum şöyle bi bakın isterseniz

                        

      SqlConnection con = new SqlConnection("Data Source='.\\SQLEXPRESS'; initial catalog='PERSONEL';integrated security=true;");
                con.Open();

                string komut = "insert into   PERSONEL(AKADEMIK_UNVAN,FAKNO,BOLNO,ABNO,ADI,SOYADI,UYRUK,GELDIGI_ULKE,TC_KIMLIK_NO,EMEKLI_SICIL_NO,

          BANKA_SUBE_NO,BANKA_HESAP_NO,IBANNO,GOREVDEN_AYRILMA_TARIHI,TOPLAM_MATRAH,SAY2000PERNO)"
                    + " values(@AKADEMIK_UNVAN,@FAKNO,@BOLNO,@ABNO,@ADI,@SOYADI,@UYRUK,@GELDIGI_ULKE,@TC_KIMLIK_NO,

    @EMEKLI_SICIL_NO,@BANKA_SUBE_NO,@BANKA_HESAP_NO,@IBANNO,@GOREVDEN_AYRILMA_TARIHI,@TOPLAM_MATRAH,@SAY2000PERNO)";

                SqlCommand cmd = new SqlCommand(komut, con);



                cmd.Parameters.AddWithValue("@ADI", txtAd.Text);
                cmd.Parameters.AddWithValue("@SOYADI", txtSoyad.Text);

                cmd.Parameters.AddWithValue("@TC_KIMLIK_NO", txtTCKimlikNo.Text);
                cmd.Parameters.AddWithValue("@EMEKLI_SICIL_NO", txtEmekliSicilNo.Text);
                cmd.Parameters.AddWithValue("@BANKA_SUBE_NO", txtBankaSubeNo.Text);
                cmd.Parameters.AddWithValue("@BANKA_HESAP_NO", txtBankaHesapNo.Text);
                cmd.Parameters.AddWithValue("@IBANNO", txtIBANNo.Text);

                cmd.Parameters.AddWithValue("@GOREVDEN_AYRILMA_TARIHI", txtGorevdenAyrilmaTarihi.Text);
                cmd.Parameters.AddWithValue("@TOPLAM_MATRAH", txtMatrahTutari.Text);
                cmd.Parameters.AddWithValue("@SAY2000PERNO", txtSay2000PersNo.Text);


                cmd.Parameters.AddWithValue("@AKADEMIK_UNVAN", ddl_AkademikUnvan.Text);
                cmd.Parameters.AddWithValue("@FAKNO", ddl_Fakulte.Text);
                cmd.Parameters.AddWithValue("@BOLNO", ddl_Bolum.Text);
                cmd.Parameters.AddWithValue("@ABNO", ddl_AnaBilimDali.Text);
                cmd.Parameters.AddWithValue("@UYRUK", ddl_Uyruk.Text);
                cmd.Parameters.AddWithValue("@GELDIGI_ULKE", ddl_GeldigiUlke.Text);


                    cmd.ExecuteNonQuery();
                    con.Close();

            



    20 Temmuz 2012 Cuma 11:39
  • TABLOLARIMDA 

    PERSONEL (AKADEMIK_UNVAN,FAKNO,BOLNO,ABNO,ADI,SOYADI,UYRUK,GELDIGI_ULKE,TC_KIMLIK_NO,EMEKLI_SICIL_NO,

          BANKA_SUBE_NO,BANKA_HESAP_NO,IBANNO,GOREVDEN_AYRILMA_TARIHI,TOPLAM_MATRAH,SAY2000PERNO)

    FAKULTE_TANIM(FAKNO,ACIKLAMA)

    BOLNO(BOLNO,FAKNO,ACIKLAMA)

    ABNO(ABNO,BOLNO,FAKNO,ACIKLAMA)

    UYRUK,AKADEMIK_UNVAN,GELDIGI_ULKE İÇİNDE FAKULTE TABLOSU GİBİ ID VE ACIKLAMA YI TUTUYOR 

    açıklamadan kastım o alanın ismi

    20 Temmuz 2012 Cuma 11:45
  • Merhaba Oğuz33;

    Tablolardaki Veri Tipleri bilmediğimiz için Mesela FAKULTE_TANIM tablosu için FAKNO'nun int , ACIKLAMA'nın nvarchar(250) (yada başka bir şey olduğunu varsayıyorum)

    ddl_Fakulte yi de Şu şekilde Doldurduğunuzu Varsayarsak

    ddl_Fakulte.DataSource = /*Herhangi Bir List yada DataTable*/
    ddl_Fakulte.DataTextField = "ACIKLAMA";
    ddl_Fakulte.DataValueField = "FAKNO";
    ddl_Fakulte.DataBind();

    PERSONEL Tablonuzdaki FAKNO column'unun VeriTipide int ise (FAKULTE_TANIM tablosundan Foreign Key ile bağladığınızı Varsayıyorum)

    Insert Komutunuzdaki

    //cmd.Parameters.AddWithValue("@FAKNO", ddl_Fakulte.Text);
    // yanlış olur bunun yerine
    cmd.Parameters.AddWithValue("@FAKNO", Convert.ToInt32(ddl_Fakulte.SelectedValue));
    // diyerek ddl_Fakulte nin SEÇİLMİŞ olan Metnin (Açıklamanın) ID sini OBJECT olarak alıp 
    // Fakulte Tablosundaki FAKNO'ya (int olduğunu varsaymışdım) Convert Ederek Elde Edip kullanabilirsiniz.
    şeklinde kullanırsanız Sorunun ortadan kalkacağına inanıyorum...


    Jesus Promised The End Of All Wicked People, ODIN Promised The End Of All Ice Giants. I Don't See Many Ice Giants Around... exe[nokta]cute[at]live[nokta]com


    • Düzenleyen Exe.Cute 20 Temmuz 2012 Cuma 12:18 Syntax
    • Yanıt Olarak İşaretleyen Oğuz ŞİŞMAN 20 Ağustos 2012 Pazartesi 07:24
    20 Temmuz 2012 Cuma 12:17
  • cevabınız için teşekkür ederim Exe.Cute 

    tablolardakı ACIKLAMA alanları varchar  FAKNO,BOLNO,ABNO ve digerleri int dır

    tablolarda birbirine foreign key ile bağlamadım sadece FAKNO yu yazdı BOLNO ve ABNO yu yazdırmadı ötekılerdede sorun kalmadı.sagolsun cevabınız için 

    ancak bu 3 tabloyu birbirine nasıl bağlıcam FAkULTE_TANIM BOLUM_TANIM ABDALI_TANIM(ANABILIMDALI_TANIM)

    20 Temmuz 2012 Cuma 13:43
  • Tekrar Merhaba Oğuz33;

    ddlBolNo ve ddlABNo DropDownListleri ni ne şekilde doldurdun ? Yukarıda verdiğim gibi DataTextField ve DataValueField şeklinde doldurduysan DropDownList'lerden SelectedValue ile gösterilen Açıklamaların ID lerine ulaşabilirsin (Unutarak bunları değiştirmemiş olabilir misin?) Hala bu işin içinden çıkamıyorsan mail adresim İmza kısmında yer alıyor Projeyi Mail olarak atabilirsin bir göz atarız.

    Tablolaro Birbiri ile ilişkilendirmek İçin Daha önce cevaplanmış bu soruya bakabilirsin..

    Resimli olarak anlatım olması lazım..


    Jesus Promised The End Of All Wicked People, ODIN Promised The End Of All Ice Giants. I Don't See Many Ice Giants Around... exe[nokta]cute[at]live[nokta]com


    • Düzenleyen Exe.Cute 20 Temmuz 2012 Cuma 17:28
    20 Temmuz 2012 Cuma 14:24
  • mail adresinize yolladım.yardım ederseniz çok mutlu olurum hem bir kaç sorum daha olucak hem böylece daha iyi anlatmış olurum sorumu şimdiden teşekkür ederim.
    22 Temmuz 2012 Pazar 15:48
  • birde linkini verdiğiniz gibi diyagram yapmaya çalıştım ancak

    fakulte tablosuna primary key uyguladım oldu onda sorun yok ancak bolum tablosuna birde anabilimdalı tablosuna uygulanmıyor çünkü 1.fakülte için 1-2-3-4 bölümleri varsa 2.fakülte içinde 1-2-3 gibi bölüm kodları oluyor aynısı anabilimdalı içinde geçerli oluyor onun için sorun çıkarıyor.

    birde resimlerlede anlatmya çalışayım;

    fakülte tablom

    bölüm tablom


    22 Temmuz 2012 Pazar 16:25
  • ana bilimdalı tablom ;

    yardımlarınızı bekliyorum; HAYIRLI RAMAZANLAR


    22 Temmuz 2012 Pazar 16:26