【发布时间】:2013-02-14 10:19:18
【问题描述】:
我想问一下如何获取组合框的选定值,然后将其显示到多个文本框。组合框填充了数据库中的疾病。现在,当从组合框中选择一种疾病时,该疾病的症状应该显示在许多文本框中。目前我有 10 个用于症状的文本框。表结构是 id、disease、symbols。这是我的代码:
Dim mycmd As New MySqlCommand
Dim dtr As MySqlDataReader
Call Connect()
Dim str As String
str = "Select symptoms from diagnose where illness = @ill"
mycmd.Parameters.AddWithValue("ill", cmbRecord.Text)
mycmd.CommandText = str
dtr = mycmd.ExecuteReader
While dtr.Read()
symp0.Text = dtr("symptoms")
symp1.Text = dtr("symptoms")
symp2.Text = dtr("symptoms")
symp3.Text = dtr("symptoms")
symp4.Text = dtr("symptoms")
symp5.Text = dtr("symptoms")
symp6.Text = dtr("symptoms")
symp7.Text = dtr("symptoms")
symp8.Text = dtr("symptoms")
symp9.Text = dtr("symptoms")
End While
myConn.Close()
当从组合框中选择疾病时,症状应显示在这些文本框中。假设所选疾病在表格中只有 4 个症状,那么symp0 到 symp3 文本框将一一显示症状,其余文本框留空。
The problem is that when an illness is selected, those textboxes displays only the last symptom of that illness stored in the database.
例如:发烧。在表中,它有4个症状:感冒、发热、头痛、头晕。如果选择发烧,则从symp0 到symp9 文本框只显示头晕。
【问题讨论】:
-
你真的需要重新考虑你的设计,如果你必须多次编写这样的代码:
sympX.Text,其中X=0:1:9(0 到 9)。 -
@Neolisk - 对不起,先生,我只是一个新手,还在学习..我不明白你的意思。我将如何使用“
sympX.Text,其中X=0:1:9(0 到 9)”?..你的意思是我应该用sympX.Text替换那些symp0.Text到symp9.Text并将x 声明为整数,然后写@ 987654333@? -
这意味着在您开始使用数据库之前,您至少应该拥有一个包含 10 个元素的文本框数组。然后,您将有一个循环来遍历所有这些,并且只有一个赋值操作。您的代码变得干净且易于阅读/维护。另请阅读我的答案 - 太大而无法发表评论。