在SQL命令上将相等性更改为其他内容

Cur*_*ous 2 c# sql sql-server

我正在开发一个Windows窗体应用程序.我想通过用户选择更改SQL命令.这是我的代码:

command.CommandText = "SELECT * FROM Product WHERE price = @price";
command.Parameters.AddWithValue("@price", 35);
Run Code Online (Sandbox Code Playgroud)

我还想将"="更改为"> ="或其他内容.当我使用参数时,我会收到错误.

command.CommandText = "SELECT * FROM Urun WHERE price @equal @price";
command.Parameters.AddWithValue("@price", 35);
command.Parameters.AddWithValue("@equal", ">=");
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Jon*_*eet 6

基本上你不能.参数化SQL仅用于值 - 而不是表名,列名或运算符.这是一个地方,你可能要动态地生成SQL -但列入白名单的设置选项.

是否从位动态构建完整的SQL,或者是否有一组预先完成的SQL查询,将取决于您正在尝试做什么.显然你仍然应该使用值的参数.