c# - 如何使用连接参数使用 SQL 子查询(后端操作在一个类中)?
问题描述
我正在创建一个练习项目,通过将它们放入容器板条箱中来帮助我组织事物。
每个箱子都将包含物品。当我进入箱子的 PK 时,我希望程序显示箱子里有哪些物品。
我有 3 张桌子:
crateContTbl:
[crateContTbl] INT IDENTITY (1, 1) NOT NULL,
[crateBC_FK] VARCHAR (50) NULL,
[invBC_FK] VARCHAR (50) NULL,
[crateQty] INT NULL,
[crateLocation] VARCHAR (50) NULL,
板条箱:
[crateBC] VARCHAR (50) NOT NULL,
invTbl:
[invBC] VARCHAR (50) NOT NULL,
[itemName] VARCHAR (50) NULL,
[itemDesc] VARCHAR (50) NULL,
[itemPic] IMAGE NULL,
我在一个类中进行了后端操作,在该类中我从 form1 获取一个参数并让它进行通配符搜索。
Backend
类方法返回数据表,但是带有子查询的方法不返回任何内容。如果我给它一个特定的值,它就会起作用。
通配符搜索用作查询,用于向我显示所有条目的搜索项,但我认为将其编写为子查询需要别的东西吗?
cmd.CommandText = "SELECT invTbl.invBC, invTbl.ItemName FROM invTbl WHERE invTbl.invBC = (SELECT crateContTbl.invBC_FK FROM crateContTbl WHERE crateContTbl.crateBC_FK = " + txtSearch + ")";
解决方案
您可以尝试在子查询中使用like 运算符,如下所示
cmd.CommandText = "SELECT invTbl.invBC, invTbl.ItemName FROM invTbl WHERE invTbl.invBC = (SELECT crateContTbl.invBC_FK FROM crateContTbl WHERE crateContTbl.crateBC_FK like '%'" + txtSearch + "'%')";
推荐阅读
- json - 如何通过 jsonḃ postgres 对列组求和
- java - 如何通过 IBM RSA 中的测试类检查主类的代码覆盖率?
- python - 如果所有元素都为 0,则删除子列表
- javascript - 如何 document.write() 一个 HTML DOM 元素对象?
- angular - 在选定的日期导航到不同的页面提交
- firebase - 异步 new Vue() 等待初始认证
- android - 通过位图解码提高 BaseAdapter 的性能
- python - 在 Python 中为对话机器人路由 Twilio SMS 响应
- android - 在不使用 Android 活动的情况下访问用户谷歌驱动器
- javascript - 如何获得删除按钮以从本地存储中删除单个项目