gpt4 book ai didi

c# - 从多个表中选择语句,具有可变输入

转载 作者:行者123 更新时间:2023-11-29 06:39:31 25 4
gpt4 key购买 nike

我有两个表:AreaCodeEquipmentNumber

+------------------------------------+
| AreaCd |
|------------------------------------|
| AreaID INT NOT NULL AUTO_INCREMENT |
| Code INT |
| Name CHAR(30) |
| Comments TEXT |
| PKEY (AreaID) |
+------------------------------------+
+------------------------------------+
| EqNum |
|------------------------------------|
| EqID INT NOT NULL AUTO_INCREMENT |
| AreaID INT |
| Number CHAR(5) |
| Type CHAR(10) |
| PKEY (EqID) |
| FKEY (AreaID) REF AreaCode(AreaID) |
+------------------------------------+

我想提取EqNum.NumberEq.TypeAreaCd.Code。问题在于,查询是由表单输入填充的,因此搜索限制是可变的。我创建了 3 个与这些类似的独立查询:

"SELECT Number, Type, Code FROM EqNum, AreaCd " +
"WHERE EqNum.AreaId = AreaCd.AreaId AND Code = " + int nCode + ";";

"SELECT Number, Type, Code FROM EqNum, AreaCd " +
"WHERE EqNum.AreaId = AreaCd.AreaId AND Number = '" + string sNumber + "';";

"SELECT Number, Type, Code FROM EqNum, AreaCd " +
"WHERE EqNum.AreaId = AreaCd.AreaId AND Type = '" + string sType + "';";

只要用户只搜索一列(代码数字 一次键入),但我需要能够同时搜索一列、两列、 所有三列。

我尝试过使用 ORLIKE、多选,我什至尝试过将 int nCode 转换为字符以使用 % 通配符,但我就是找不到有用的东西。

问题:有人可以帮我加入这三个查询以搜索表中所有三个字段的任意组合:EqNum.NumberEqNum.TypeAreaCd.Code 将在添加更多字段时优化搜索结果?(即搜索 EqNum.Type 将产生比搜索 EqNum.Number, EqNum.TypeAreaCd.Code)

最佳答案

SELECT e.Number, e.Type, a.Code
FROM EqNum e INNER JOIN AreaCd a
ON e.AreaId = a.AreaId
WHERE (@Number IS NULL OR e.Number = @Number)
AND (@Type IS NULL OR e.Type = @Type)
AND (@Code IS NULL OR a.Code = @Code)

要了解如何在 ADO.NET 中使用参数,click here .

设置参数看起来像这样:

command.Parameters["@Number"].Value = (string.IsNullOrEmpty(number) ? (object) DBNull.Value : number);

关于c# - 从多个表中选择语句,具有可变输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22316374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com