选择 4 个值以从其他列返回一个值
Posted
技术标签:
【中文标题】选择 4 个值以从其他列返回一个值【英文标题】:Pick 4 values to return a value from other column 【发布时间】:2014-07-22 13:37:39 【问题描述】:我有一个场景,用户必须从每个下拉列表中选择 4 个值。如果所有这些值都与数据库/表中的值匹配(超过 100 行)。它将在文本框上返回结果。请看下面的草图,我使用的是 VB。感谢您的帮助。
产品|col1|col2|col3|col4
苹果 |1 |2 |3 |4
葡萄 |2 |4 |4 |6
橙色 |1 |3 |5 |7
从下拉列表中选择
下拉菜单1:1
下拉菜单2:2
下拉菜单3:3
下拉菜单4:4
文本框:苹果。
【问题讨论】:
我已经尝试过 user7777 提到的 if 。但是,这仅适用于特定数据。表有 100 多条记录。如果我使用每一个 if,那会很痛苦。你有什么建议吗? 【参考方案1】:正如 Mych 所说,数据在您的数据库中,因此您只需查询您的数据库并找到与不同列匹配的产品。
在 vb.net 中有很多方法可以从您的数据库中获取信息。 这是一个如何完成的示例:
Using conn as New SqlConnection("ConnectionStringToDatabase")
conn.Open()
Using cmd as New SqlCommand("your_query", conn)
Dim reader as SqlDataReader = cmd.ExecuteReader
If reader.HasRows Then
reader.Read
textbox1.Text = reader("product")
End If
reader.Close()
End Using
End Using
在哪里导入以下内容: System.Data.SqlClient
您的查询也与 Mych 建议的类似:
"Select Distinct product from MyDataTable Where Col1 = " & dropdown1.SelectedValue &
" AND Col2 = " & dropdown2.SelectedValue & " AND Col3 =" & dropdown3.SelectedValue &
" AND Col4 =" & dropdown4.SelectedValue
【讨论】:
这对我来说是个好方法。不幸的是,我的地方使用的是老式学校风格。他们正在使用 Access 数据库并在 Access 中创建一个表单。很抱歉一开始没有提到。 您必须研究如何连接到 Access 数据库。你现在知道怎么做,现在你只需要正确的语法。如果您仍然遇到问题,请使用代码和您的努力更新您的问题。那我可以帮你更多。 D 查询运行良好。从其他 4 个 cbbox 中挑选后,我有一个组合框 5 来显示最终值。我将 d 查询放在 combobox5 的 Property\Row Source 中。如果我们从 4 列手动输入正确的 4 个不同的值,它确实有效。但是,它会提示一个窗口从用户那里获取输入,而不是从其他组合框获取值。我使用查询: SELECT product FROM producttbl WHERE col1 = cbo1.SelectedValue AND col2= Cbo2.SelectedValue AND col3= Cbo3.SelectedValue AND col4= Cbo4.SelectedValue;如何从其他 cbbox 中获取 d 值而不是提示输入参数的窗口? 提示是什么意思?您是否像上面的查询一样使用引号和 & ?并且请使用“the”而不是“d”,以便于阅读。 我将该查询放入行源并运行应用程序。当用户单击组合框时,它会弹出一个小窗口询问“输入参数值”。我不使用 & 因为行源不带 &。如果用户手动将值输入“输入参数值”,这确实有效文本框。但是,我希望用户从组合框中选择值,而不是手动输入文本框。【参考方案2】:你说数据在数据库中......
创建一个 Select 语句来查找行...
Select from MyDataTable Product Where Col1 = dropdown1.SelectedValue
AndAlso Col2 = dropdown2.SelectedValue AndAlso Col3 = dropdown3.SelectedValue
AndAlso Col4 = dropdown4.SelectedValue
【讨论】:
以上是关于选择 4 个值以从其他列返回一个值的主要内容,如果未能解决你的问题,请参考以下文章
将浮点值存储在数组中,并分析最后 20 个值以在 C++ 中检查