vb.net - 为什么没有从连接 sql 查询中加载组合框
问题描述
Dim cmd As New SqlCommand("SELECT MainDepartmentsTable.ID, FeesTable.ID,FeesTable.Particular,FeesTable.Fee from MainDepartmentsTable inner join SubDepartmentsTable on MainDepartmentsTable.ID = SubDepartmentsTable.MainDeptID inner join FeesTable on SubDepartmentsTable.MainDeptID = FeesTable.SubDepartmentID WHERE FeesTable.ID = '" & TextDepartmentID.Text & "' ", con)
Dim DataAdopter = New SqlDataAdapter(cmd)
Dim dt As New DataTable
DataAdopter.Fill(dt)
Load_Deparments()
解决方案
让我们稍微简化一下:
Dim sql = "SELECT FeesTable.ID, CoNCAT(FeesTable.Particular, '-', FeesTable.Fee) as DisplayText
FROM
SubDepartmentsTable
inner join FeesTable on SubDepartmentsTable.MainDeptID = FeesTable.SubDepartmentID
WHERE SubDepartmentsTable.MainDeptID = @id"
Dim da As New SqlDataAdapter(sql, con)
da.SelectCommand.Parameters.AddWithValue("@id", Convert.ToInt32(TextDepartmentID.Text)) 'less worried about AWV with ints but read https://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already/
Dim dt As New DataTable
da.Fill(dt)
'this part connects the data to the combo - it's the part you didn't show in your Q and what people are telling you is missing
yourCombo.DisplayMember = "DisplayText"
yourCombo.ValueMember = "ID"
yourCombo.DataSource = dt
这并不是为了解决您的问题;您从问题中遗漏了太多信息,不知道如何准确回答,因此您将不得不修改它
你需要改变的事情:
- 在 SQL 中选择的列 - 加载您将显示的一列(我演示了如何在 DisplayText 的一个名称下组合两位信息)和一列用于支持值(ID)
- 在 where 子句中过滤的列或文本框的名称
TextDepartmentID
- 费用 ID 应该等于部门 ID 对我来说似乎很奇怪,因此我更改了 SQL 以检索 MainDepartmentID 的费用详细信息因为我假设您的文本框名称是正确的,并且您打算通过子部门显示一个部门的费用 - 阅读链接的博客,也许选择以不同的方式添加参数
- 更改
yourCombo
为组合框的名称 - 更改 DisplayMember 和 ValueMember 设置以匹配您的 SQL 查询选择的两列的名称
- 如果您正在建立一个组合,您只需要两列,但是如果您将数据表传递到某个地方,您可以添加更多
推荐阅读
- graph - 查找只能由两个节点到达的子图
- javascript - 使用 JavaScript 的一组数组元素中的 GroupBy(基于标题的动态输入的简单分组方法)
- c# - 在easymodbus RTU c#中更改从站ID后恢复连接
- reactjs - React 类组件设置状态,出现“=”符号解析错误
- hyperledger-fabric - 在 hyperledger fabric 2.0 中,是否可以在两个不同的通道中创建和部署链码,每个通道包含不同的组织?
- c++ - 为什么运算符重载 == 不起作用?
- ios - GCD:URLSession 下载任务
- jestjs - monorepo 中项目的 jest coverageDirectory 配置
- lua - Lua错误:有人可以帮助我解决middleclass.lua的路径吗?
- sql-server - SQL Server :: Microsoft Access 查询中数据类型的隐式转换?