Mssql’den comboBox’a veri çekmek[Ado.Net]

24 Şubat 2010 – 22:06 Bu örnekte comboBox a Mssql veritabanından veri çekme örneği bulunmaktadır.Veritabanı olarak northwind kullanılmıştır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace Databas4 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } SqlConnection sqlConn = new SqlConnection(); private void Form1_Load(object sender, EventArgs e) { sqlConn.ConnectionString = "Data Source=lab4-hoca;user=sa;password=a;Database=Northwind;"; //yukarıda hangi bilgisayara bağlanmnası gerektiğini tarif ettik sqlConn.Open();// Bağlantıyı açtık SqlCommand sqlComCustomers = new SqlCommand(); sqlComCustomers.CommandText = "select * from Customers"; sqlComCustomers.CommandType = CommandType.Text;//Text olarak yazdığımız için sqlComCustomers.Connection = sqlConn; SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = sqlComCustomers; DataTable dtCustomers = new DataTable(); //Data table : m*n matris gibi düşünebiliriz. //hayali bir excel gibi veriyi getirir da.Fill(dtCustomers);// Veriyi alıp getirir //artık verimiz dtCustomers'dadır. MessageBox.Show(dtCustomers.Rows.Count.ToString()); //Toplam kayıt sayısını //Comboya veriyi datatable dan otomatik olarak //atmak istiyorsak // 3 adet property sini set etmeliyiz. comboBox1.DataSource = dtCustomers; comboBox1.DisplayMember = "CompanyName";//Gözükecek olan field comboBox1.ValueMember = "CustomerId";// Arka plandaki hafızda tutacağı alan SqlCommand sqcCalisanlar = new SqlCommand(); sqcCalisanlar.Connection = sqlConn; sqcCalisanlar.CommandType = CommandType.Text; sqcCalisanlar.CommandText = "select * from Employees"; DataTable dtCalisanlar = new DataTable(); da.SelectCommand = sqcCalisanlar; da.Fill(dtCalisanlar); cmbCalisan.DataSource = dtCalisanlar ; cmbCalisan.DisplayMember = "LastName";//Gözükecek olan field cmbCalisan.ValueMember = "EmployeeId";// Arka plandaki hafızda tutacağım alan sqlConn.Close(); } private void button1_Click(object sender, EventArgs e) { if (sqlConn.State != ConnectionState.Open) sqlConn.Open(); //Bağlantı açık değil ise aç SqlCommand sqComOrders = new SqlCommand(); sqComOrders.CommandType = CommandType.Text; sqComOrders.Connection = sqlConn; sqComOrders.CommandText = "select * from Orders where CustomerId ='" + comboBox1.SelectedValue +"'"; //Customer bilgisi Comobox1'de mevcut. //SelectedValue property'si bize seçili olan müşterinin //Gözükmeyen ValuMember ile set ettiiğimiz SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = sqComOrders; //Selectcommand dışında 3 alternatif daha olabilirdi //uygulamanın ne yapacağına bağlı olarak: //a)insertCommand b)DeleteCommand //c)UpdateCommand. DataTable dtOrders = new DataTable(); da.Fill(dtOrders); // fill methodu çağrılınca dtOrders datatable'ı dolmuş olacak. dataGridView1.DataSource = dtOrders; //data grid view bize elde ettiğimiz sorgunun //sonucunda dönen kayıtları satır ve sütun şeklinde //gösterimini sağlar. } private void button2_Click(object sender, EventArgs e) { if (sqlConn.State != ConnectionState.Open) sqlConn.Open(); SqlCommand sqComOrders = new SqlCommand(); sqComOrders.Connection = sqlConn; sqComOrders.CommandType = CommandType.StoredProcedure; sqComOrders.CommandText = "pCalisanlarinSiparisleri"; sqComOrders.Parameters.AddWithValue ("@EmployeeID", Convert.ToInt16( cmbCalisan.SelectedValue)); SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = sqComOrders; DataTable dtOrders2 = new DataTable(); da.Fill(dtOrders2); //dtOrders2 o çalışanıni //yani seçili çalışanın siparişleri mevcut. dataGridView1.DataSource = dtOrders2; } } } |
Linkler
RapidShare
Csharptr
Etiketler: ”ado.net, combobox, veri çekme”
4 yorum yapılmış
eline sağlık güzel bir çalışma olmuş
ben kodları mysql server üzerinde kullanmak istiyorum gerekli değişiklikleri yaptım fakat da.Fill(dtCustomers);
kısmında sorun veriyor ve programın çalışıp çalışmadığını test edemiyorum sorununsa neden kaynaklandığını bilemiyorum. yardımcı olabilirseniz çok sevinirim. combobox kullanımı ile ilgili en iyi çalışma bu olmuş.
5 Mayıs 2010 - 03:47
ben programı yamaya başladığımda bağlantıyı açması için bir buton koymuştum. verdiğin kodları form1 in loader ı yerine butonun altına ekleyince sorun çözüldü.
teşekkürler
5 Mayıs 2010 - 04:25
yapmıs oldugum projede databasede bilgileri olan firmanın tüm bilgilerini ismini yazdıktan sonra kayıtları getir butonuna bastıgımda adres ise adresi girdigimiz textbox a tekrar yazılmasını vede bunun gibi diğer bilgilerininde yazılmasını istiyorum update işlemi yaptırmak için düşünüyorum böyle bir sistemi..
aşşagıdaki kodda sql sorgusu gelecek yeri bir türlu cıkaramadım.
string kayitgetir = “BURAYA SQL SORUGUSU GELİCEK?????”;
sadp = new SqlDataAdapter(kayitgetir, baglanti);
verial = new DataSet();
sadp.Fill(verial);
Response.Write(“” + ad + ” adlı firmanın bilgileri getirildi”);
ekranda bu uyarıyı verince tüm bilgiler insert işlemi yaparmıs gibi tum textboxlar dolacak databasedeki bilgilerle.
yardımcı olursanız sevinirm.
25 Ağustos 2010 - 16:14
sql sorgusu db deki tablo yapınıza göre yapılacak yani;
“select [alan(lar)] from [tabloadı] where firmaid = [sorgulanacakFirmaID]”
gibi bir sorguyla firma bilgilerini çekebilirsiniz.
26 Ağustos 2010 - 13:46