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();
}
}
}
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();
}
}
}
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