没有多少技术含量,只是自己觉得思路还可以,看不看随便,我只是自己做个笔记!
多看我几篇文章的人就知道我真的很懒,呵呵,我总试图用最少的页来实现最多的功能,所以就有了下面这个多条件SQL语句的需求了,也许你的查询没有条件,也许有一个,也许有两个,但是这总是在你只知道最多条件的情况下产生的,总不至于每一条不同的SQL查询就多一个数据源或者一个页吧?那么最好的办法让SQL条件自己活起来,如果你恰恰遇上这个问题,而正巧还没有解决的话可以看下,其实这个我之所以说没有技术含量是我隐约记得以前一个ASP程序的SQL语句的构造也是很灵活的,只是我忘记具体是怎么做的了,但是我敢肯定这个问题对很多老鸟(不到虾级别)来说都不是什么问题!废话一堆,看代码了!
多看我几篇文章的人就知道我真的很懒,呵呵,我总试图用最少的页来实现最多的功能,所以就有了下面这个多条件SQL语句的需求了,也许你的查询没有条件,也许有一个,也许有两个,但是这总是在你只知道最多条件的情况下产生的,总不至于每一条不同的SQL查询就多一个数据源或者一个页吧?那么最好的办法让SQL条件自己活起来,如果你恰恰遇上这个问题,而正巧还没有解决的话可以看下,其实这个我之所以说没有技术含量是我隐约记得以前一个ASP程序的SQL语句的构造也是很灵活的,只是我忘记具体是怎么做的了,但是我敢肯定这个问题对很多老鸟(不到虾级别)来说都不是什么问题!废话一堆,看代码了!
public DataTable dt(string aid,string calss,string sh)
{
string sql = "select * from link";//先初始化一个不带任何条件的SQL语句
if (aid != null)
{//如果地区条件不为空
sql += " where aid="+aid+"";//因为是第一次加载条件,所以加上where
if (calss != null)
{//如果类别也不为空
sql += " and calss='"+calss+"'";//这里因为是加载到地区条件后面所以就不能where了,而是直接and
}
if (sh != null)
{//以下不用解释了,呵呵,既然你都看这里了,至少表示你肯定对sql语句还是懂的了,只是提醒一句,记得前面的空格,呵呵,因为是加载条件,而本身语句前面都不带空格的
sql += " and sh="+sh+"";
}
}
if (calss != null)
{
if (aid == null)
{
sql += " where calss='"+calss+"'";
}
if (sh != null)
{
if (aid == null)
{
sql += " and sh="+sh+"";
}
}
}
if (sh != null)
{
if (aid == null&&calss==null)
{
sql += " where sh=" + sh + "";
}
}
OleDbConnection con = new OleDbConnection(constring);
OleDbDataAdapter oda = new OleDbDataAdapter();
oda.SelectCommand = new OleDbCommand(sql, con);
DataSet ds = new DataSet();
oda.Fill(ds, "link");
return ds.Tables["link"];
}
{
string sql = "select * from link";//先初始化一个不带任何条件的SQL语句
if (aid != null)
{//如果地区条件不为空
sql += " where aid="+aid+"";//因为是第一次加载条件,所以加上where
if (calss != null)
{//如果类别也不为空
sql += " and calss='"+calss+"'";//这里因为是加载到地区条件后面所以就不能where了,而是直接and
}
if (sh != null)
{//以下不用解释了,呵呵,既然你都看这里了,至少表示你肯定对sql语句还是懂的了,只是提醒一句,记得前面的空格,呵呵,因为是加载条件,而本身语句前面都不带空格的
sql += " and sh="+sh+"";
}
}
if (calss != null)
{
if (aid == null)
{
sql += " where calss='"+calss+"'";
}
if (sh != null)
{
if (aid == null)
{
sql += " and sh="+sh+"";
}
}
}
if (sh != null)
{
if (aid == null&&calss==null)
{
sql += " where sh=" + sh + "";
}
}
OleDbConnection con = new OleDbConnection(constring);
OleDbDataAdapter oda = new OleDbDataAdapter();
oda.SelectCommand = new OleDbCommand(sql, con);
DataSet ds = new DataSet();
oda.Fill(ds, "link");
return ds.Tables["link"];
}