Mssql’den comboBox’a veri çekmek[Ado.Net] Google'da Ara Büyüt Küçült

Genişlet
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 Etiketler: ”, ,

Benzer Yazılar

  1. 4 yorum yapılmış

  2. user avatar hüseyin

    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

  3. user avatar hüseyin

    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

  4. user avatar murat

    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

  5. user avatar Mertcan Kurtaran

    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

Yorum Yap

Isim : (gerekli)
E-mail : (gerekli)
Yorumunuz: