ผูกข้อมูลระหว่าง Combobox ทำอย่างไร

คำถาม
ผมหาข้อมูลเกี่ยวกับ vb.net2005 มาทำโปรเจคอยู่กับ แล้วไปเจอสเปซคุณพอดี
เลยอยากจะรบกวนปรึกษาการเขียน vb.net หน่อยครับ
 
คือภายในหน้าของ form1 มี combobox1 และ combobox2
combobox1 = ชื่อประเทศ
combobox2 = ชื่อจังหวัด
 
ผมต้องการที่จะให้มีการเลือกชื่อประเทศใน box1 จากนั้น listitem ในbox2 จะเป็นชื่อจังหวัดของประเทศนั้นๆ 
ไม่ทราบว่าต้องทำการอ้างค่าที่เลือกจาก box1 อย่างไรครับ 
ขอขอบคุณล่วงหน้าครับ

ตอบ
ใน database ให้สร้าง table รองรับในส่วนนี้ก่อนครับ เช่น
ตารางประเทศ                   ตารางจังหวัด
รหัส    ประเทศ            รหัสจังหวัด    จังหวัด        ประเทศ
01     ไทย                  00          กรุงเทพ         01
02      ลาว                  01          น่าน             01 
03      พม่า                 02           กาลาจี          04
04     กัมพูชา               03           เวียงจันทร์      05 
05      ลาว
…      …….
…      …….
ในหน้าฟอร์มให้ออกแบบหน้า interface ให้เรียบร้อย โดย ComboBox1 ให้ผูกเข้ากับตาตางประเทศ เช่น
String sql="Select * from ตารางประเทศ
SqlDataReader dr = conn.GenExecutDataReader(sql) //สร้าง Function เองนะครับ
if(dr.HasRow)
{
 DataTable dt=new DataTable();
 dr.Load(dr)
 ComboBox1.DataSource=dt;
 ComboBox1.DisplayMember="ประเทศ";
 ComboBox1.ValueMember = "รหัส"; 
}
ใน Event ของ ComboBox1.SelectedCommited ให้ทำการสร้าง Query เพื่อ Select จังหวัด ดังนี้
string sql="Select * from จังหวัด where ประเทศ=’"+ ComboBox1.SelectedValue.ToString()+"’";
SqlDataReader dr = conn.GenExecutDataReader(sql) //สร้าง Function เองนะครับ
if(dr.HasRow)
{
 DataTable dt=new DataTable();
 dr.Load(dr)
 ComboBox2.DataSource=dt;
 ComboBox2.DisplayMember="จังหวัด";
 ComboBox2.ValueMember = "รหัสจังหวัด"; 
}

ประมาณนี้ครับ

2 thoughts on “ผูกข้อมูลระหว่าง Combobox ทำอย่างไร

  1. ดีครับ…อยากถามหน่อยนะครับ  คือผมต้องการที่จะเอาข้อมูลในฐานข้อมูล access บางฟิลด์มาใส่ในคอมโบ๊บอกนะครับ  โดยที่ผู้ใช้สามารถพิมพ์ข้อความที่ต้องการลงไปเพียงแค่ตัวเดียวก็จะโผล่รายการที่มีชื่อเหมือนที่พิมพ์โผล่ขึ้นมาให้เลือกทั้งหมดเลยแล้วให้กดเลือกหลังจากนั้นข้อมูลที่เลือกก้อจะโผล่ใน datagrid นะครับข้อมูลประมาณนี้นะครับ
    รหัสยา   ชื่อยา  จำนวน
    123     para   20
    456     parox  12
    789     LK       45
    ……     ….      ….
    แล้วผู้ใช้พิมพ์ตัวอักษรลงไปใน combobox เพียงแค่เลขรหัสตัวเดียวหรือไม่ก้อพิมพืแค่ชื่อเพียงอักษรเดียวก้อจะมาโผล่ที่  combobox แล้วคลิกเลือกหลังจากนั้นข้ออมูลที่เลือกก็โผล่ที่ datagrid นะครับ
     
    ประมาณนี้ครับ  ขอบคุณล่วงหน้านะครับ

กรุณา Comment สักหน่อยเถอะ จะได้ปรับปรุ่งให้ดีขึ้น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s