none
komut.executenoncuery hatası hatayı nerde yapıyorum acaba yardımcı olurmusunuz RRS feed

  • Genel Tartışma

  • using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;

    using System.Data.OleDb;

    namespace kartelasistem
    {
        public partial class yeniKayit : Form
        {
            public yeniKayit()
            {
                InitializeComponent();
            
            

            }



            OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=iplik.mdb");
            OleDbCommand komut = new OleDbCommand();
            OleDbDataAdapter adtr = new OleDbDataAdapter();
            DataSet ds = new DataSet();

            private void btnKapat_Click(object sender, EventArgs e)
            {
                this.Close();

            }

            private void label1_Click(object sender, EventArgs e)
            {
                KumasCinsi   ac = new KumasCinsi ();
                ac.ShowDialog();
            }

            private void yeniKayit_Load(object sender, EventArgs e)
            {

            }

            private void tabPage3_Click(object sender, EventArgs e)
            {




           


     


            }

            private void btnKaydet_Click(object sender, EventArgs e)
            {
                if (comboBox1.Text !=""&&  comboBox2.Text !=""&& textBox2 .Text !=""&& textBox3 .Text !=""&& textBox4 .Text !=""&& textBox5 .Text !="" )
                {
                    komut.Connection = baglanti;
                    komut.CommandText = "Insert Into iplik(Firma,Kalite,Ne,Cinsi,Fiyat,Tarih) Values ('" + comboBox1.Text + "','" + comboBox2.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "',)";
                    baglanti.Open();
                    komut.ExecuteNonQuery();
                    komut.Dispose();
                    baglanti.Close();
                    MessageBox.Show("Kayıt Tamamlandı!");
                    ds.Clear();
                    listele();


                }
                else
                {
                    MessageBox.Show("Boş Alan Geçmeyiniz!");
                        
                }
            }
       void listele()
            {
                baglanti.Open();
                OleDbDataAdapter adtr = new OleDbDataAdapter("Select * From  iplik ", baglanti);
            adtr .Fill (ds,"iplik");
            dataGridView1 .DataSource =ds.Tables ["iplik"];

           adtr.Dispose ();
           baglanti .Close ();

            }

       private void btnYeni_Click(object sender, EventArgs e)
       {
           baglanti.Open();
           komut.Connection = baglanti;
           komut.CommandText = "Delete From iplik where Firma='" + comboBox1.Text + "'";
           komut.ExecuteNonQuery();
           komut.Dispose();
           baglanti.Close();
           ds.Tables["iplik"].Clear();
           listele();

       }

        }
    }
    30 Ocak 2017 Pazartesi 11:55

Tüm Yanıtlar

  • komut.CommandText = "Insert Into iplik(Firma,Kalite,Ne,Cinsi,Fiyat,Tarih) Values ('" + comboBox1.Text + "','" + comboBox2.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "',)";

    sondaki koyu virgülü silip denerseniz olur.ama en önemlisi parametreli bir kullanım oluşturun.oldukça tehlikeli bir şekilde kullanıyorsunuz.

    30 Ocak 2017 Pazartesi 12:01
  • Burada en buyuk hata parametre kullanmamanizda:

    komut.CommandText = @"Insert Into iplik 
    (Firma,Kalite,Ne,Cinsi,Fiyat,Tarih) 
    Values
    (@firma,@kalite,@ne,@cinsi,@fiyat,@tarih)";
    
    decimal fiyat;
    DateTime tarih;
    
    var f = decimal.TryParse("textBox4.Text", out fiyat) ? fiyat : (decimal?)null;
    var t = DateTime.TryParse(textBox5.Text, out tarih) ? tarih : (DateTime?)null;
    
    komut.Parameters.Add("@firma", OleDbType.VarChar).Value = comboBox1.Text;
    komut.Parameters.Add("@kalite", OleDbType.VarChar).Value = comboBox2.Text;
    komut.Parameters.Add("@ne", OleDbType.VarChar).Value = textBox2.Text;
    komut.Parameters.Add("@cinsi", OleDbType.VarChar).Value = textBox3.Text;
    komut.Parameters.Add("@fiyat", OleDbType.Decimal).Value = f;
    komut.Parameters.Add("@tarih", OleDbType.Date).Value = t;
    
    baglanti.Open();
    komut.ExecuteNonQuery();
    komut.Dispose();
    baglanti.Close();
    

    30 Ocak 2017 Pazartesi 13:00
    Yanıtlayıcı
  • peki ben bu kodu yazarsam bütün sorun çözülecek mi bide kodun tamamı bu mu 

    30 Ocak 2017 Pazartesi 13:15
  • sizin dediğiniz gibi yaptım fakat yine aynı hatayı veriyor

    30 Ocak 2017 Pazartesi 13:20
  • parametreli yaptım yine aynı hatayı verdi neden acaba

    30 Ocak 2017 Pazartesi 13:31

  • using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;

    using System.Data.OleDb;

    namespace kartelasistem
    {
        public partial class yeniKayit : Form
        {
            public yeniKayit()
            {
                InitializeComponent();
            
            

            }



            OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=iplik.mdb");
            OleDbCommand komut = new OleDbCommand();
            OleDbDataAdapter adtr = new OleDbDataAdapter();
            DataSet ds = new DataSet();

            private void btnKapat_Click(object sender, EventArgs e)
            {
                this.Close();

            }

            private void label1_Click(object sender, EventArgs e)
            {
                KumasCinsi   ac = new KumasCinsi ();
                ac.ShowDialog();
            }

            private void yeniKayit_Load(object sender, EventArgs e)
            {

            }

            private void tabPage3_Click(object sender, EventArgs e)
            {




           


     


            }

            private void btnKaydet_Click(object sender, EventArgs e)
            {
               komut.CommandText = @"Insert Into iplik 
    (Firma,Kalite,Ne,Cinsi,Fiyat,Tarih) 
    Values
    (@firma,@kalite,@ne,@cinsi,@fiyat,@tarih)";

    decimal fiyat;
    DateTime tarih;

    var f = decimal.TryParse("textBox4.Text", out fiyat) ? fiyat : (decimal?)null;
    var t = DateTime.TryParse(textBox5.Text, out tarih) ? tarih : (DateTime?)null;

    komut.Parameters.Add("@firma", OleDbType.VarChar).Value = comboBox1.Text;
    komut.Parameters.Add("@kalite", OleDbType.VarChar).Value = comboBox2.Text;
    komut.Parameters.Add("@ne", OleDbType.VarChar).Value = textBox2.Text;
    komut.Parameters.Add("@cinsi", OleDbType.VarChar).Value = textBox3.Text;
    komut.Parameters.Add("@fiyat", OleDbType.Decimal).Value = f;
    komut.Parameters.Add("@tarih", OleDbType.Date).Value = t;

    baglanti.Open();
    komut.ExecuteNonQuery();
    komut.Dispose();
    baglanti.Close();


                }
             
     
            
            

       private void btnYeni_Click(object sender, EventArgs e)
       {

       }

        }
    }
    30 Ocak 2017 Pazartesi 13:32
  • lütfen acil yardımcı olabilirmisiniz

    30 Ocak 2017 Pazartesi 13:42
  • HAYIR.

    Kodun tamami tabii ki bu olamaz ve bununla kesin cozulecek diye bir sey yok. Bu temel problemi cozer sadece. Onun disinda o degerlerin uygun tiplerde olmasi ve o kaydi yapmaniza baska engel olmamasi vs sartlar gerekli. Sizin verdiginiz kod da kismi bir kod ve icerisinde ne ise yaradigi belli olmayan DataSet de tanimlanmis. Hata var diyorsunuz ancak ben hata mesajinin ne oldugunu goremedim, bir yerde gozden mi kacirdim diye bakti ama yine goremedim. Genelde hata mesaji size sorunu soyler. Jet.OleDb gorunce aklima access kullandiginiz geliyor (yapilabilecek en kotu secim) ve hata tamamen accesse ozgu bir sey de olabilir.

     

    30 Ocak 2017 Pazartesi 14:22
    Yanıtlayıcı