C# 使用可变WHERE子句进行选择

C# 使用可变WHERE子句进行选择,c#,sql,ms-access,C#,Sql,Ms Access,我拥有下表C和MS访问权限: _sSqlString = "CREATE TABLE Device(" + "deviceID AUTOINCREMENT NOT NULL," + "brandName VARCHAR NOT NULL,"

我拥有下表C和MS访问权限:

_sSqlString = "CREATE TABLE Device("
                                            + "deviceID AUTOINCREMENT NOT NULL,"
                                            + "brandName VARCHAR NOT NULL,"
                                            + "modelName VARCHAR NOT NULL,"
                                            + "deviceCaliber VARCHAR NOT NULL,"
                                            + "batterySize INT NOT NULL,"
                                            + "screenSize DOUBLE NOT NULL,"
                                            + "frontCameraMP INT NOT NULL,"
                                            + "rearCameraMP INT NOT NULL,"
                                            + "weightedScore INT,"
                                            + "PRIMARY KEY (deviceID)"
                                            + ")";
目标:

用户可以选择他们喜欢的品牌,这将执行select命令来查找与他们的偏好匹配的所有设备。用户还可以选择任何品牌,这是一个简单的select*命令

我所尝试的:


成功:通过所有品牌的选择程序,如果未选择,则设置为空

虽然这样做有效,但我觉得重复使用OR是低效的,并且有可能得到改进。是否有可能改善这一点,或者SELCT、or或e.t.c是最好的方法


提前感谢您的帮助,非常感谢!:

在这里使用IN是否合适

我不确定您在这里是如何从C到SQL的,但是如果您只是执行SQL,您可以连接一个选定品牌的字符串,并在选择中使用它。要点是您需要一个类似于

SELECT *
FROM Device AS d
WHERE d.brandName IN ('Apple', 'Alcatel')

一个选择过程,通过所有品牌,如果未选择,则设置为空。我不知道这是什么意思。为什么不在问题中包含实际代码?您不应该通过连接用户输入来创建SQL语句,因为这会使您的代码容易受到SQL注入的攻击。请参阅以获取替代方法。