2011-12-10 169 views
-2

创建SELECT查询有一个查询如何与某些条件

​​

如何让这个查询可以返回这样的结果。 工作示例。

1 xx 
2 yy 
3 xx 

1)

textbox1.Text==""; 
textbox2.Text==""; 

结果 -

1 xx 
2 yy 
3 xx 

2)

textbox1.Text==""; 
textbox2.Text=="xx"; 

结果 -

1 xx 
3 xx 
+1

但是,这是不是** **一个问题..... ** **什么是你的问题???? –

+0

你根本无法用那个查询来做到这一点。您必须根据用户输入更改您的查询(使用一个参数或不使用)。 – Marco

+1

Sql injection ... – Guillaume86

回答

1

请你下面的语句尝试,感谢

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

它工作正常 –

+1

....它是一个很好的入侵方式,任何黑客使用SQL注入您的网站.... –

+0

只是回答相应的,但是,使用参数化查询是安全的使用,请看这里的例子:http:///www.dotnetperls.com/sqlparameter,感谢您的时间 –

2

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

string [email protected]"SELECT * FROM table WHERE 1=1 "; 

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

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

您生成的查询将为字符串类型数据提供错误。 –

+0

我们不知道他的数据类型是什么,这就是我一直使用的并且没有问题的地方。也是你的代码做的只是写不同的;;) – Andres

+0

这就是写,但是,猜测'name'字段,当然它的字符串或varchar,感谢您的时间。 –