Şimdi Ara

C# Sql Bağlantısı

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
6
Cevap
1
Favori
1.833
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba,visual studio 2010 da "data sources" bölümünden "add new data source" ü kullanarak access de oluşturduğum veri tabanını forma ekledim.
    Yapmak istediğim şey: 4 tane combobox ın birbiriyle etkileşimli olması.Yani birinci combobox da 5 veri var.ikinci combobox da ise 200 veri var.iki ayrı(satır sayıları belirttiğim gibi 5 ve 200) tabloyu bu comboboxlara ekledim.ilk combobox da seçilen veriye göre bu 200 elemandan belli bi kısmı gözükmeli.yani 5 elemanlık combobox da her veri 200 elemanlı combobox dan belirli elemanlarla eşleşiyor.ben comboBox_SelectedIndexChanged metodunda işlem yapmayı düşündüm.ancak database i hazır ekledim.yani herhangi bi kod yazmadım.yazmadan halledebilmeyi umut ediyorum.
    bu 5 eleman , 200 elemanlık tabloda sutun olarak var.200 elemanın herbirinin hangi 5lik elemanla ilişkili olduğu belli yani.
    Sorunum:200 elemanlık combobox da "add query" dedim.ve sorgu kısmına 5 elemanlık tablonun combobox ında seçilen veriyi 200 elemanlık tablonun sutundaki eşit olanları getir dedim.
    yani;
    SELECT Alan1, Alan2
    FROM [TABLO]
    WHERE (Alan2 = 'comboBox1.[Text]')

    Çok fazla yerde araştırdım ancak bütün anlatımlar kendi database bağlantısı oluşturularak yapılmış anlatımlardı.tam olarak istediğimi de anlatmıyorlardı.

    Mesela;
    5 elemanlık
    elma
    armut
    kiraz
    çilek
    erik


    200 elemanlık
    sutun1 sutun2
    ankara çilek
    istanbul elma
    bursa erik
    izmir çilek
    çanakkale kiraz
    mersin armut
    trabzon elma
    urfa çilek
    bolu erik


    combobox 1 de erik seçilirse
    combobox 2 nin bağlı olduğu 200 elemanlık tabloda sutun 2 de erik e eşit olanlar combobox2 de gösterilecek.



    Teşekkürler şimdiden







  • Merhaba
    const string query = @"Select Alan1 From [TABLO] where Alan2='"+combobox1.selecteditem.text+"'";
    DataTable dt = null;
    comboBox2.BeginUpdate();
    using (SqlConnection conn = new SqlConnection(connStr))
    {
    conn.Open();
    using (SqlCommand cmd = new SqlCommand(query, conn))
    {
    using (SqlDataReader rdr = cmd.ExecuteReader())
    {
    dtable = new DataTable();
    dtable.Load(rdr);
    }
    }
    conn.Close();
    }
    for (int i = 0; i < dt.Rows.Count; i++)
    {
    comboBox2.Items.Add(dtable.Rows["Alan1"]);
    }
    ComboBox1 'in change kısmına bu mantıkta bir kod yerleştirmen sorunu çözer gibime geliyor. Tam olarak çalışmayabilir bu kod. Toplayarak İDEsiz bişeyler yazdım ama mantık bu şekilde olsa gerek



    < Bu mesaj bu kişi tarafından değiştirildi Cuhara -- 6 Haziran 2012; 16:53:54 >




  • Öncelikle teşekkürler cevabınız için.kodları ilgili metodun içine yapıştırdım.
    belirttiğiniz nedenden ötürü olan syntax hatalarını giderdim.ancak
    System.ArgumentException: Keyword not supported: 'select alan1,alan2 from tablo where alan2'.
    hatası geldi.sql le ilgili çok bilgim yok öğrenmeye çalışıyorum.o yüzden bu kodlar biraz karmaşık geldi.syntax hatası olmayan hali bu, belkide yanlışlık yaptım.

    string query = @"Select Alan1,Alan2 From TABLO where Alan2='" + comboBox1.Text + "'"; 
    DataTable dt = null;
    comboBox2.BeginUpdate();
    using (SqlConnection conn = new SqlConnection(query))
    {
    conn.Open();
    using (SqlCommand cmd = new SqlCommand(query, conn))
    {
    using (SqlDataReader rdr = cmd.ExecuteReader())
    {
    dt = new DataTable();
    dt.Load(rdr);
    }
    }
    conn.Close();
    }
    for (int i = 0; i < dt.Rows.Count; i++)
    {
    comboBox2.Items.Add(dt.Rows[i].ToString());
    }






    using System.Data.SqlClient;

    kütüphanesinden başka bir kütüphane eklemedim



    < Bu mesaj bu kişi tarafından değiştirildi TheCrow123 -- 6 Haziran 2012; 17:37:35 >




  • Hallettim.belki başkalarının da ihtiyacı olur.


    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
    string sorgumetni = "SELECT Alan1, Alan2 FROM [TABLO] where Alan2='" + comboBox1.Text + "'";

    comboBox2.BeginUpdate();
    OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=db.accdb");
    conn.Open();
    OleDbCommand kaydet = new OleDbCommand(sorgumetni,conn);
    kaydet.CommandType = CommandType.Text;
    kaydet.Connection = conn;
    OleDbDataAdapter da =new OleDbDataAdapter();
    da.SelectCommand=kaydet;
    DataTable dt = new DataTable();
    da.Fill(dt);

    comboBox2.DataSource=dt;
    comboBox2.DisplayMember = "Alan1";

    conn.Close();
    }



    access le çalıştığım için oledb kullanmam gerekiyormuş.access i belirtmemişim sanırım.çözüm bu şekilde




  • Evet hocam, providerda sorun çıkarmış :) Bende şöyle bir örnek yaptım. İşine yarar belki Kolay gelsin

    using System; 
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;

    namespace WindowsFormsApplication1
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
    // TODO: This line of code loads data into the 'testDataSet.tst' table. You can move, or remove it, as needed.
    this.tstTableAdapter.Fill(this.testDataSet.tst);
    SqlConnection con;
    con = new SqlConnection("Server=SERVERNAME;Database=Test;User ID=sa;Password=1234qwer;Trusted_Connection=False;");
    SqlCommand kmt = new SqlCommand("Select name from tst group by name", con);
    con.Open();
    SqlDataReader oku;
    oku = kmt.ExecuteReader();
    while (oku.Read())
    {
    comboBox1.Items.Add(oku[0]);
    }
    con.Close();

    }

    private void comboBox1_SelectedValueChanged(object sender, EventArgs e)
    {
    SqlConnection con;
    comboBox2.Items.Clear();
    comboBox2.Refresh();
    con = new SqlConnection("Server=SERVERNAME;Database=Test;User ID=sa;Password=1234qwer;Trusted_Connection=False;");
    SqlCommand kmt = new SqlCommand("Select surname from tst where name='" + comboBox1.Text + "'", con);
    comboBox2.BeginUpdate();
    con.Open();
    SqlDataAdapter sqDa = new SqlDataAdapter();
    SqlDataReader oku;
    oku = kmt.ExecuteReader();
    while (oku.Read())
    {
    comboBox2.Items.Add(oku[0]);
    }
    con.Close();
    }
    }
    }



    < Bu mesaj bu kişi tarafından değiştirildi Cuhara -- 7 Haziran 2012; 11:49:16 >




  • select * distinct yaz
  • Yapay Zeka’dan İlgili Konular
    C# datagridview hatası yardım
    12 yıl önce açıldı
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.