komut.ExecuteNonQuery(); -----> Additional information: Syntax error in UPDATE statement.

0

C# ile excele veri göndermeye çalışıyorum. OledB ile yapıyorum. Datagridview üzerinden güncelleme işlemi sırasında hata alıyorum.Yardımcı olabilir misiniz?

namespace GE
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        OleDbConnection xlsxbaglanti = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\502758545\\Desktop\\ATT.xlsx; Extended Properties='Excel 12.0 Xml;ReadOnly=False;HDR=YES'"); 
        OleDbCommand komut = new OleDbCommand();
        
        void griddoldur()
        {
            
            DataTable tablo = new DataTable(); //Verileri direkt datagrid'e çekmek için DataTable kodunu tanımlıyoruz.

            xlsxbaglanti.Open(); //Excel dosyamızığın bağlantısını açıyoruz.
            tablo.Clear(); //En üstte tanımladığımız Datatable değişkenini temizliyoruz.
            OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", xlsxbaglanti); 
            da.Fill(tablo); //Gelen sonuçları datatable'a gönderiyoruz.
            dataGridView1.DataSource = tablo; //datatable'da ki verileri datagrid'de listeliyoruz.
            xlsxbaglanti.Close(); //Bağlantıyı kapatıyoruz.

        }

        void guncelle()
        {
         xlsxbaglanti.Open();
            string sorgu = "UPDATE [Sheet1$] SET ([ORDERYEAR],[COMPLYEAR],[COUNTRY],[CUSTOMER],"
                + "[ACTIVITY],[SITE],[NO],[RATING(MVA/MVAR)],[TYPE],[Ph],[f(Hz)],[HV(kV)],[LV(kV)],[TV(kV)],[TAPCHANGER],[COOLING] WHERE= [MANUFNO]) "
                + "values (@O, @C, @CO, @CU, @A, @S,"
                + "@N, @R, @T, @P, @F, @H, @L, @TV, @TA, @COO, "
                + "@M)";
            OleDbCommand komut = new OleDbCommand(sorgu, xlsxbaglanti);
            komut.Parameters.AddWithValue("@O", textBox1.Text);
            komut.Parameters.AddWithValue("@C", textBox2.Text);
            komut.Parameters.AddWithValue("@CO", textBox3.Text);
            komut.Parameters.AddWithValue("@CU", textBox4.Text);
            komut.Parameters.AddWithValue("@A", textBox5.Text);
            komut.Parameters.AddWithValue("@S", textBox6.Text);
            komut.Parameters.AddWithValue("@N", textBox7.Text);
            komut.Parameters.AddWithValue("@R", textBox8.Text);
            komut.Parameters.AddWithValue("@T", textBox9.Text);
            komut.Parameters.AddWithValue("@P", textBox10.Text);
            komut.Parameters.AddWithValue("@F", textBox11.Text);
            komut.Parameters.AddWithValue("@H", textBox12.Text);
            komut.Parameters.AddWithValue("@L", textBox13.Text);
            komut.Parameters.AddWithValue("@TV", textBox14.Text);
            komut.Parameters.AddWithValue("@TA", textBox15.Text);
            komut.Parameters.AddWithValue("@COO", textBox16.Text);
            komut.Parameters.AddWithValue("@M", textBox17.Text);
            komut.ExecuteNonQuery();
            xlsxbaglanti.Close();
            griddoldur();   

        }

        private void button1_Click(object sender, EventArgs e)
        {
            griddoldur();
        }

          // BURADA textboxlara girdiğim verileri excele gönderiyorum
        private void button2_Click(object sender, EventArgs e)
        {

            
            xlsxbaglanti.Open();
            string sorgu = "Insert into [Sheet1$] ([ORDERYEAR],[COMPLYEAR],[COUNTRY],[CUSTOMER],"
                + "[ACTIVITY],[SITE],[NO],[RATING(MVA/MVAR)],[TYPE],[Ph],[f(Hz)],[HV(kV)],[LV(kV)],[TV(kV)],[TAPCHANGER],[COOLING],[MANUFNO]) "
                + "values (@O, @C, @CO, @CU, @A, @S,"
                + "@N, @R, @T, @P, @F, @H, @L, @TV, @TA, @COO, "
                + "@M)";
            OleDbCommand komut = new OleDbCommand(sorgu, xlsxbaglanti);
            komut.Parameters.AddWithValue("@O", textBox1.Text);
            komut.Parameters.AddWithValue("@C", textBox2.Text);
            komut.Parameters.AddWithValue("@CO", textBox3.Text);
            komut.Parameters.AddWithValue("@CU", textBox4.Text);
            komut.Parameters.AddWithValue("@A", textBox5.Text);
            komut.Parameters.AddWithValue("@S", textBox6.Text);
            komut.Parameters.AddWithValue("@N", textBox7.Text);
            komut.Parameters.AddWithValue("@R", textBox8.Text);
            komut.Parameters.AddWithValue("@T", textBox9.Text);
            komut.Parameters.AddWithValue("@P", textBox10.Text);
            komut.Parameters.AddWithValue("@F", textBox11.Text);
            komut.Parameters.AddWithValue("@H", textBox12.Text);
            komut.Parameters.AddWithValue("@L", textBox13.Text);
            komut.Parameters.AddWithValue("@TV", textBox14.Text);
            komut.Parameters.AddWithValue("@TA", textBox15.Text);
            komut.Parameters.AddWithValue("@COO", textBox16.Text);
            komut.Parameters.AddWithValue("@M",textBox17.Text);
            komut.ExecuteNonQuery();
           // griddoldur();
            xlsxbaglanti.Close();

        }

       

       

        private void button3_Click(object sender, EventArgs e)
        {
            guncelle();
        }

   
    }
    }

mgasilturk mgasilturk (31)
6 yıl önce sordu

Toplam 1 Cevap


0

Merhaba sorunu hallettim. Paylaşmak isterim ;

namespace GE
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        OleDbConnection xlsxbaglanti = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\502758545\\Desktop\\ATT.xlsx; Extended Properties='Excel 12.0 Xml;ReadOnly=False;HDR=YES'"); //excel_dosya.xlsx kısmını kendi excel dosyanızın adıyla değiştirin.
        OleDbCommand komut = new OleDbCommand();
        
        //DATAGRİDVİEW'I DOLDUR
        void griddoldur()
        {
            xlsxbaglanti.Open(); //Excel dosyamızığın bağlantısını açıyoruz.
            DataTable tablo = new DataTable(); //Verileri direkt datagrid'e çekmek için DataTable kodunu tanımlıyoruz.

            tablo.Clear(); //En üstte tanımladığımız Datatable değişkenini temizliyoruz.
            OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", xlsxbaglanti); //OleDbDataAdapter ile excel dosyamızdaki verileri listeliyoruz. Burada önemli olan kısım sorgu cümleciğinde ki YeniSayfa$ kısmı yerine excel dosyasındaki ismi yazmanız gerek. Bu isim excel dosyanızı açtığınızda en altta yazan isimdir. Eğer değiştirmediyseniz zaten Sayfa1 olarak yazar. Ayrıca " $ " simgesi ve köşeli parentezleri ellememeniz gerek.
            da.Fill(tablo); //Gelen sonuçları datatable'a gönderiyoruz.
            dataGridView1.DataSource = tablo; //datatable'da ki verileri datagrid'de listeliyoruz.
            xlsxbaglanti.Close(); //Bağlantıyı kapatıyoruz.

        }

      
        void guncelle()
        {

            xlsxbaglanti.Open();
            string sorgu = "UPDATE [Sheet1$] SET [ORDERYEAR]=?,[COMPLYEAR]=?,[COUNTRY]=?,[CUSTOMER]=?,"
                + "[ACTIVITY]=?,[SITE]=?,[NO]=?,[RATING(MVA/MVAR)]=?,[TYPE]=?,[Ph]=?,[f(Hz)]=?,[HV(kV)]=?,[LV(kV)]=?,[TV(kV)]=?,[TAPCHANGER]=?,[COOLING]=? WHERE [MANUFNO]=?";
            OleDbCommand komut = new OleDbCommand(sorgu, xlsxbaglanti);
            komut.Parameters.AddWithValue("@?", textBox1.Text);
            komut.Parameters.AddWithValue("@?", textBox2.Text);
            komut.Parameters.AddWithValue("@?", textBox3.Text);
            komut.Parameters.AddWithValue("@?", textBox4.Text);
            komut.Parameters.AddWithValue("@?", textBox5.Text);
            komut.Parameters.AddWithValue("@?", textBox6.Text);
            komut.Parameters.AddWithValue("@?", textBox7.Text);
            komut.Parameters.AddWithValue("@?", textBox8.Text);
            komut.Parameters.AddWithValue("@?", textBox9.Text);
            komut.Parameters.AddWithValue("@?", textBox10.Text);
            komut.Parameters.AddWithValue("@?", textBox11.Text);
            komut.Parameters.AddWithValue("@?", textBox12.Text);
            komut.Parameters.AddWithValue("@?", textBox13.Text);
            komut.Parameters.AddWithValue("@?", textBox14.Text);
            komut.Parameters.AddWithValue("@?", textBox15.Text);
            komut.Parameters.AddWithValue("@?", textBox16.Text);
            komut.Parameters.AddWithValue("@?", textBox17.Text);
            komut.ExecuteNonQuery();
 
            xlsxbaglanti.Close();
            griddoldur();
            

        }

        //VERİLERİ KAYDEDİYOR
        void kaydet()
        {
            xlsxbaglanti.Open();
            string sorgu = "Insert into [Sheet1$] ([ORDERYEAR],[COMPLYEAR],[COUNTRY],[CUSTOMER],"
                + "[ACTIVITY],[SITE],[NO],[RATING(MVA/MVAR)],[TYPE],[Ph],[f(Hz)],[HV(kV)],[LV(kV)],[TV(kV)],[TAPCHANGER],[COOLING],[MANUFNO]) "
                + "values (@O, @C, @CO, @CU, @A, @S,"
                + "@N, @R, @T, @P, @F, @H, @L, @TV, @TA, @COO, "
                + "@M)";
            OleDbCommand komut = new OleDbCommand(sorgu, xlsxbaglanti);
            komut.Parameters.AddWithValue("@O", textBox1.Text);
            komut.Parameters.AddWithValue("@C", textBox2.Text);
            komut.Parameters.AddWithValue("@CO", textBox3.Text);
            komut.Parameters.AddWithValue("@CU", textBox4.Text);
            komut.Parameters.AddWithValue("@A", textBox5.Text);
            komut.Parameters.AddWithValue("@S", textBox6.Text);
            komut.Parameters.AddWithValue("@N", textBox7.Text);
            komut.Parameters.AddWithValue("@R", textBox8.Text);
            komut.Parameters.AddWithValue("@T", textBox9.Text);
            komut.Parameters.AddWithValue("@P", textBox10.Text);
            komut.Parameters.AddWithValue("@F", textBox11.Text);
            komut.Parameters.AddWithValue("@H", textBox12.Text);
            komut.Parameters.AddWithValue("@L", textBox13.Text);
            komut.Parameters.AddWithValue("@TV", textBox14.Text);
            komut.Parameters.AddWithValue("@TA", textBox15.Text);
            komut.Parameters.AddWithValue("@COO", textBox16.Text);
            komut.Parameters.AddWithValue("@M", textBox17.Text);
            komut.ExecuteNonQuery();
            xlsxbaglanti.Close();
            griddoldur();

        }

        private void button1_Click(object sender, EventArgs e)
        {
            griddoldur();
        }

        private void textBox18_TextChanged(object sender, EventArgs e)
        {
            
        }

    //SÜREKLİDATAGRİDE VERİLERİ DOLDURUYOR
        private void Form2_Load(object sender, EventArgs e)
        {
            griddoldur();
        }

       

        //KAYDEDİYOR
        private void button2_Click(object sender, EventArgs e)
        {


            kaydet();
        }

       

       
        //GÜNCELLE
        private void button3_Click(object sender, EventArgs e)
        {
            guncelle();
            griddoldur();
        }

        //GRİDVİEWDEKİ SEÇTİĞİN VERİYİ TEXTBOX A AL
        private void button4_Click(object sender, EventArgs e)
        {
            textBox1.Text = dataGridView1.CurrentRow.Cells[0].Value.ToString();
            textBox2.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString();
            textBox3.Text = dataGridView1.CurrentRow.Cells[2].Value.ToString();
            textBox4.Text = dataGridView1.CurrentRow.Cells[3].Value.ToString();
            textBox5.Text = dataGridView1.CurrentRow.Cells[4].Value.ToString();
            textBox6.Text = dataGridView1.CurrentRow.Cells[5].Value.ToString();
            textBox7.Text = dataGridView1.CurrentRow.Cells[6].Value.ToString();
            textBox8.Text = dataGridView1.CurrentRow.Cells[7].Value.ToString();
            textBox9.Text = dataGridView1.CurrentRow.Cells[8].Value.ToString();
            textBox10.Text = dataGridView1.CurrentRow.Cells[9].Value.ToString();
            textBox11.Text = dataGridView1.CurrentRow.Cells[10].Value.ToString();
            textBox12.Text = dataGridView1.CurrentRow.Cells[11].Value.ToString();
            textBox13.Text = dataGridView1.CurrentRow.Cells[12].Value.ToString();
            textBox14.Text = dataGridView1.CurrentRow.Cells[13].Value.ToString();
            textBox15.Text = dataGridView1.CurrentRow.Cells[14].Value.ToString();
            textBox16.Text = dataGridView1.CurrentRow.Cells[15].Value.ToString();
            textBox17.Text = dataGridView1.CurrentRow.Cells[16].Value.ToString();
        }


        //ARAMA YAP
        private void button5_Click(object sender, EventArgs e)
        {
            OleDbConnection xlsxbaglanti = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\502758545\\Desktop\\ATT.xlsx; Extended Properties='Excel 12.0 Xml;ReadOnly=False;HDR=YES'"); //excel_dosya.xlsx kısmını kendi excel dosyanızın adıyla değiştirin.
            OleDbDataAdapter adtr = new OleDbDataAdapter("Select *from [Sheet1$] where MANUFNO like '" + textBox18.Text + "%'", xlsxbaglanti);
            DataSet ds = new DataSet();
            xlsxbaglanti.Open();
            adtr.Fill(ds, "Sheet1$");
            dataGridView1.DataSource = ds.Tables["Sheet1$"];
            xlsxbaglanti.Close();

        }
    }
    }
 

 

mgasilturk mgasilturk (31)
6 yıl önce cevaplandı

  • Teşekkürler, cevabı çözülmüş olarak işaretledim. ismailsarp 6 yıl önce
üyelik gerektirir

Cevap yazabilmek için üye girişi yapmalısınız.

Eğer uzmanim.net üyesiyseniz giriş yapabilirsiniz: üye girişi yap
uzmanim.net'e üye olmak çok kolaydır: hemen kayıt ol