C# 使用可变WHERE子句进行选择
我拥有下表C和MS访问权限:C# 使用可变WHERE子句进行选择,c#,sql,ms-access,C#,Sql,Ms Access,我拥有下表C和MS访问权限: _sSqlString = "CREATE TABLE Device(" + "deviceID AUTOINCREMENT NOT NULL," + "brandName VARCHAR NOT NULL,"
_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注入的攻击。请参阅以获取替代方法。