うまくいくことを願っています。
主キーを割り当てたいリストボックスとテキスト(学生テーブルなど)があります。だから私はこのコードを書きました。
mySQLCmd.CommandText = "SELECT studentname, studentid FROM studentstable WHERE Year(DOB) = " + selectedYear
Dim dt As New DataTable
myReader = myCmd.ExecuteReader()
dt.Load(myReader)
Listbox1.datavaluefield = "studentid"
Listbox1.datatextfield = "studentname"
ListBox1.DataSource = dt
ListBox1.DataBind()
リストボックスは正常に機能します。SQLステートメントは正常に機能します。そして、ListBox1_SelectedIndexChangedでselectedvalueプロパティとselecteditemプロパティをキャッチしたい
1. Dim selectedPupil As String = ListBox1.SelectedItem.ToString()
2. Dim selectedPupilID As Integer = ListBox1.SelectedValue
リストボックスで何かを選択すると、selecteditemプロパティとselectedvalueプロパティの両方が、学生IDではなく学生名を返すだけです。したがって、このエラーが発生します。
Error on Line2. Conversion from string "RichardCole" to type 'Integer' is not valid.
どうしてか分かりません?だから私はstudentidの値を取り戻すのですか?IDcoz名がPKとして使用できないことを知っておく必要があります。
本当にありがとう。