C# 如何使用某些条件创建SELECT查询

C# 如何使用某些条件创建SELECT查询,c#,sql,C#,Sql,有一个疑问 string query=string.Format("SELECT * FROM table WHERE id='{0}' AND name='{1}'",textBox1.Text,textBox2.Text); 如何使此查询能够返回这样的结果。 工作实例 桌子 (一) 结果- 1 xx 2 yy 3 xx 1 xx 3 xx (二) 结果- 1 xx 2 yy 3 xx 1 xx 3 xx 我不确定问题是

有一个疑问

  string query=string.Format("SELECT * FROM table WHERE id='{0}'
                              AND name='{1}'",textBox1.Text,textBox2.Text);
如何使此查询能够返回这样的结果。 工作实例

桌子

(一)

结果-

1 xx
2 yy
3 xx
1 xx
3 xx
(二)

结果-

1 xx
2 yy
3 xx
1 xx
3 xx

我不确定问题是什么,所以这是假设

string query=@"SELECT * FROM table WHERE 1=1 ";

if(textBox1.Text != "")
query += " and id=" + textBox1.Text;

if(textBox2.Text != "")
query += " AND name= " + textBox2.Text;

请您尝试一下下面的陈述,谢谢

string query = @"SELECT * FROM table WHERE 1=1 "
                + (string.IsNullOrEmpty(textBox1.Text) ? "" : " AND id='" + textBox1.Text + "' ")
                + (string.IsNullOrEmpty(textBox2.Text) ? "" : " AND name='" + textBox2.Text + "' ");

但这不是一个问题。。。。。你的问题是什么???你不能用这个问题来回答。您必须根据用户输入更改查询(是否使用一个参数)。假设您试图将文本框绑定到选定的名称和id,为什么将“id”文本框留空并更改“name”文本框会删除记录2(或任何记录)?到目前为止,询问者正在寻找一些满足其示例的语句,谢谢。您生成的查询将为字符串类型数据提供错误。我们不知道他的数据类型是什么,这是我一直使用的,没有问题。此外,您的代码也会执行相同的操作,只是编写方式不同而已……)这是写的,但是,猜猜
名称
字段,当然是它的字符串或varchar,谢谢您的时间。。。。。对于任何使用SQL注入攻击您的站点的人来说,这是一个很好的入门方式……刚才的回答是,使用参数化查询是安全的,请参见这里的示例:,谢谢您的时间
string query = @"SELECT * FROM table WHERE 1=1 "
                + (string.IsNullOrEmpty(textBox1.Text) ? "" : " AND id='" + textBox1.Text + "' ")
                + (string.IsNullOrEmpty(textBox2.Text) ? "" : " AND name='" + textBox2.Text + "' ");