 |
|
MySQL, VB.NET สอบถามปัญหาการทำ multiple combobox ให้สัมพันธ์กัน |
|
 |
|
|
 |
 |
|
ตอนนี้กำลังฝึกเขียนโปรแกรมอยู่ค่ะ โดยฝึกจาก แต่ติดปัญหาจากหนังสือพัฒนาระบบฐานข้อมูลด้วย vb2005 ของอ.ศุภชัยค่ะ
แต่ยังสงสัยในเรื่องการทำ combobox 2 ตัวให้สัมพันธ์กัน ดังภาพ

คือต้องการว่าเมื่อเลือกคณะแล้วภาควิชาจะมีอยู่เฉพาะคณะที่เลือกเท่านั้น เท่าที่อ่านดูในบอร์ด ยังไม่ค่อยเข้าใจวิธีการทำงานเท่าไหร่ค่ะ จึงอยากขอคำแนะนำจากทุกๆคน ค่ะ (หนูใช้vb2005 ในการเขียนค่ะ)
Code (VB.NET)
Private Sub frmPeople_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
lblPeopleID.BackColor = Color.FromArgb(0, 0, 0, 0)
Dim FD As New FormFader
FD.FadeIn(Me, 0.25)
sw.Reset()
sw.Start()
Dim strConn As String
strConn = DBConnString.strConn
Conn = New SqlConnection()
With Conn
If .State = ConnectionState.Open Then .Close()
.ConnectionString = strConn
.Open()
End With
sb = New StringBuilder()
sb.Append("SELECT * FROM tbl_preT;")
sb.Append("SELECT * FROM tbl_preE;")
sb.Append("SELECT * FROM tbl_type;")
sb.Append("SELECT * FROM tbl_campus;")
sb.Append("SELECT * FROM tbl_dep1 ORDER BY dep1Name;")
sb.Append("SELECT * FROM tbl_dep2 ORDER BY dep2Name;")
Dim sqlIni As String
sqlIni = sb.ToString()
RemoveHandler cboPreT.SelectedValueChanged, AddressOf cboPreT_SelectedValueChanged
RemoveHandler cboPreE.SelectedValueChanged, AddressOf cboPreE_SelectedValueChanged
RemoveHandler cboCampus.SelectedValueChanged, AddressOf cboCampus_SelectedValueChanged
RemoveHandler cboDep1.SelectedValueChanged, AddressOf cboDep1_SelectedValueChanged
' RemoveHandler cboDep2.SelectedValueChanged, AddressOf cboDep2_SelectedValueChanged
RemoveHandler cboType.SelectedValueChanged, AddressOf cboType_SelectedValueChanged
com = New SqlCommand()
With com
.CommandText = sqlIni
.CommandType = CommandType.Text
.Connection = Conn
dr = .ExecuteReader()
If dr.HasRows Then
dtPreT = New DataTable
dtPreT.Load(dr)
With cboPreT
.BeginUpdate()
.DisplayMember = "preTNameS"
.ValueMember = "preTID"
.DataSource = dtPreT
.EndUpdate()
End With
dtPreE = New DataTable
dtPreE.Load(dr)
With cboPreE
.BeginUpdate()
.DisplayMember = "preENameS"
.ValueMember = "preEID"
.DataSource = dtPreE
.EndUpdate()
End With
dtType = New DataTable
dtType.Load(dr)
With cboType
.BeginUpdate()
.DisplayMember = "typeName"
.ValueMember = "typeID"
.DataSource = dtType
.EndUpdate()
End With
dtCampus = New DataTable
dtCampus.Load(dr)
With cboCampus
.BeginUpdate()
.DisplayMember = "CampusNameS"
.ValueMember = "campusID"
.DataSource = dtCampus
.EndUpdate()
End With
dtDep1 = New DataTable
dtDep1.Load(dr)
With cboDep1
.BeginUpdate()
.DisplayMember = "dep1Name"
.ValueMember = "dep1ID"
.DataSource = dtDep1
.EndUpdate()
End With
dtDep2 = New DataTable
dtDep2.Load(dr)
With cboDep2
.BeginUpdate()
.DisplayMember = "dep2Name"
.ValueMember = "dep2ID"
.DataSource = dtDep2
.EndUpdate()
End With
End If
End With
dr.Close()
AddHandler cboPreT.SelectedValueChanged, AddressOf cboPreT_SelectedValueChanged
AddHandler cboPreE.SelectedValueChanged, AddressOf cboPreE_SelectedValueChanged
AddHandler cboCampus.SelectedValueChanged, AddressOf cboCampus_SelectedValueChanged
AddHandler cboDep1.SelectedValueChanged, AddressOf cboDep1_SelectedValueChanged
' AddHandler cboDep2.SelectedValueChanged, AddressOf cboDep2_SelectedValueChanged
AddHandler cboType.SelectedValueChanged, AddressOf cboType_SelectedValueChanged
iPreT.SelectedValue = cboPreT.SelectedValue
iPreE.SelectedValue = cboPreE.SelectedValue
iCampus.SelectedValue = cboCampus.SelectedValue
iDep1.SelectedValue = cboDep1.SelectedValue
iDep2.SelectedValue = cboDep2.SelectedValue
iType.SelectedValue = cboType.SelectedValue
With cboSearch
.Items.Add("รหัสบุคคล")
.Items.Add("ชื่อบุคคล(ภาษาไทย)")
.Items.Add("ชื่อบุคคล(ภาษาอังกฤษ)")
' .Items.Add("คณะ")
' .Items.Add("ภาควิชา")
.Items.Add("เบอร์โทรศัพท์มือถือ")
.SelectedIndex = 1
End With
cboPreT.ContextMenu = New ContextMenu()
cboPreE.ContextMenu = New ContextMenu()
cboCampus.ContextMenu = New ContextMenu()
cboDep1.ContextMenu = New ContextMenu()
cboDep2.ContextMenu = New ContextMenu()
cboType.ContextMenu = New ContextMenu()
picPeople.Image = picPeople.ErrorImage
' dtpAdmitDate.Value = DateTime.Today()
ClearCustomer()
tsAdd.Enabled = True
tsOK.Enabled = False
' tsCancel.Enabled = False
sw.Stop()
ProcessTime = sw.ElapsedMilliseconds / 1000
_ToolStripLabel.Text = "เวลาที่ใช้ : " & ProcessTime.ToString("0.0000") & "วินาที"
If (iSubjectDetail = False) Then
bgwPeople.RunWorkerAsync()
End If
End Sub
และอีกอันเป็นส่วน คณะ(Dep1) และภาควิชา (Dep2)
Code (VB.NET)
Private Sub cboDep1_SelectedValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboDep1.SelectedValueChanged
iDep1.SelectedValue = cboDep1.SelectedValue
End Sub
Private Sub cboDep2_SelectedValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboDep2.SelectedValueChanged
iDep2.SelectedValue = cboDep2.SelectedValue
End Sub
Tag : .NET, MySQL, VB.NET, VS 2005 (.NET 2.x)
|
|
 |
 |
 |
 |
Date :
2011-07-01 09:23:11 |
By :
yadamonje |
View :
1997 |
Reply :
4 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ใน combobox ตัวที่ 2 หนูต้องทำอย่างนี้ใช่มั้ยค่ะ
Code (VB.NET)
Private Sub cboDep2_SelectedValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboDep2.SelectedValueChanged
Dim sqlSelect As String = ""
sqlSelect = "SELECT *fROM tbl_Dep2 "
sqlSelect &= " WHERE(dep1ID ='" & cboDep2.SelectedValue.ToString & "') "
Dim strConn As String
strConn = DBConnString.strConn
Conn = New SqlConnection()
With Conn
If .State = ConnectionState.Open Then .Close()
.ConnectionString = strConn
.Open()
End With
If isFind2 = True Then
ds.Tables("iDep1").Clear()
End If
da = New SqlDataAdapter(sqlSelect, Conn)
da.Fill(ds, "iDep1")
With cboDep1
.DataSource = dtDep1.Tables("cboDep1")
.DisplayMember = "dep1Name"
.ValueMember = "dep1ID"
End With
isFind2 = True
iDep2.SelectedValue = cboDep2.SelectedValue
End Sub
แล้วในส่วน form Load หนูต้องเพิ่มเติมอะไรมั้ยค่ะ
|
 |
 |
 |
 |
Date :
2011-07-08 11:56:16 |
By :
jernnrej |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถามอีกนิดนะคะ
ตอนนี้ิbinding ข้อมูลแล้วค่ะ
แต่ติดerrror ในส่วนfrom load ดังภาพนี้ค่ะ หนูไม่รู้ว่าหนูอ้างตัวแปรผิดรึเปล่าค่ะ?

|
ประวัติการแก้ไข 2011-07-12 09:27:47 2011-07-12 09:31:40
 |
 |
 |
 |
Date :
2011-07-11 10:47:35 |
By :
jernnrej |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|