。net c# 多条件搜索怎么拼接sql语句的字符串

2024-12-14 21:45:08
推荐回答(4个)
回答1:

一般用StringBuilder来组织SQL语句(大量字符串操作).
SQL中用 where 1=1 后接的多条件,添加的条件之间就可以用 and 来拼接.

例如
StringBuilder sbSql = new StringBuilder();
sbSql.Append("select * from talbe1 ");
sbSql.Append("where 1=1 ");
if(str1 != null && str1 != "")
{
sbSql.Append("and col1='" + str1.Trim() + "' ");
}
if(str2 != null && str2 != "")
{
sbSql.Append("and col2='" + str2.Trim() + "' ");
}

补充:
数据库中,可供数据查询的有:表(Table)和视图(View),它们的查询方式是一样的.
所以select后面使用表(Table)或视图(View)都是可以的.

差别在于:
视图(View)建立在表(Table)基础之上.已优化查询(Select).
不能对视图(View)进行增(Insert),删(Delete),改(Update)等操作.

回答2:

我一般是吧条件放到ArrayList里面,手工拼接
ArrayList arr;

arr.Add("条件1");
arr.Add("条件2");
arr.Add("条件3");

StringBuilder b = new StringBuilder();
if(arr.Count > 1)
{
b.Append("(");
for(int i = 0;i < arr.Count;i++)
{
string c = arr[i].ToString();
if(c.Trim().Length > 0)
{
b.Append(arr[i].ToString());
if(i < arr.Count - 1)
{
b.Append(" and ");
}
}
}
b.Append(")");
searchCondition = b.ToString();
}
else if(arr.Count == 1)
{
searchCondition = arr[0].ToString().Trim();
}
else
{
searchCondition = "";
}

回答3:

string strSql="select * from V_视图 where 1=1";
string strW="";
if (条件1!="")
strW+=" and 字段1='"+条件1+"'";
if (条件2!="")
strW+=" and 字段2='"+条件2+"'";

strSql+=strW

datatable dt=run(strsql);

回答4:

他那个V_视图就是视图的名称而已,其实你要拼接加个and就可以啦
例如:在Student表中查出成绩scord>60,性别sex为男的学生学号ID ,可以这样写:
select ID from Student where scord>60 and sex=‘男’
就可以了。