สร้าง db_test
มี table 2 ตัว
1 tbl1 มีรายละเอียดตามนี้



2 tbl2 มีตายละเอียดตามนี้




สร้าง ComboBox มา 2 ตัว
1 ชื่อ combo1
2 ชื่อ combo2


form1.cs

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 combobox1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
String strConnString;
strConnString = "Server=nasa;Uid=sa;PASSWORD=1234;database=db_test;Max Pool Size=400;Connect Timeout=600;";
objConn = new SqlConnection(strConnString);
objConn.Open();

DataSet ds = new DataSet();
SqlDataAdapter da1 = new SqlDataAdapter("SELECT * FROM tbl1", objConn);
da1.Fill(ds, "combolist");
combo1.DataSource = ds;//กำหนด DataSet
combo1.DisplayMember = "combolist.name_a";
combo1.ValueMember = "combolist.id_a";
objConn.Close();

//ใส่ Event ให้กับ combo1 เมื่อทำการเปลี่ยนค่าใน combo1 จะเรียกใช้ฟังก์ชั่น Combo1_SelectedIndexChanged
this.combo1.SelectedIndexChanged +=
new System.EventHandler(Combo1_SelectedIndexChanged);
}
SqlConnection objConn;
private void Form1_Load(object sender, EventArgs e)
{


}

private void Combo1_SelectedIndexChanged(object sender, System.EventArgs e)
{
String strConnString;
strConnString = "Server=nasa;Uid=sa;PASSWORD=1234;database=db_test;Max Pool Size=400;Connect Timeout=600;";
objConn = new SqlConnection(strConnString);
objConn.Open();

DataSet ds = new DataSet();
SqlDataAdapter da1 = new SqlDataAdapter("SELECT * FROM tbl2 WHERE id_a = "+combo1.SelectedValue, objConn); //combo1.SelectedValue คือการดึงค่า Value ของ combo1
da1.Fill(ds, "combolist");
combo2.DataSource = ds;//กำหนด DataSet
combo2.DisplayMember = "combolist.name_b";
combo2.ValueMember = "combolist.id_b";
objConn.Close();
}

}
}

8 ความคิดเห็น

  1. ผิดผลาดบรรทัดนี้ครับ
    this.combo1.SelectedIndexChanged +=
    new System.EventHandler(Combo1_SelectedIndexChanged);

    ตอบลบ
  2. ไม่ error ละ โทษทีคร๊าบดูผิด

    ตอบลบ
  3. ขอบคุณมาก ๆ เลยครับ

    ตอบลบ
    คำตอบ
    1. combo2.ValueMember = "combolist.id_b"; error ตรงนี้อ่ะครับ

      ลบ
  4. สร้าง table และ combo box รายละเอียดเหมือนตัวอย่างหรือเปล่าครับ พอดีตอนนี้เครื่องผมไม่ได้ลง sql server ไว้ล่ะ

    ตอบลบ
  5. คือผมเอามา ดัดแปลงอ่ะครับ

    DataSet ds = new DataSet();
    SqlDataAdapter da1 = new SqlDataAdapter(" select DocID from Dispatch " + cmbDocID.SelectedValue, conn); //combo1.SelectedValue คือการดึงค่า Value ของ combo1
    da1.Fill(ds, "combolist");//// error Incorrect syntax near '.'.
    cmbDID.DataSource = ds;//กำหนด DataSet
    cmbDID.DisplayMember = "combolist.Description1 ";
    cmbDID.ValueMember = "combolist.DID ";
    conn.Close();

    ตอบลบ
  6. select DocID from Dispatch " + cmbDocID.SelectedValue

    คำสั่ง sql ลืมใส่ where ครับ


    ตอบลบ
  7. error ที่เดิมแต่ เปลี่ยน คำerror ครับ
    An expression of non-boolean type specified in a context where a condition is expected, near 'System'.

    ตอบลบ