ComboBox Datadan Veri Çekme
Bu örnekte comboBox a FireBird veritabanından veri çekme örneği bulunmaktadır.Veritabanı olarak FireBird kullanılmıştır.
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=PcDr.DBA;";
//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;
}
}
}