zoukankan      html  css  js  c++  java
  • 用在ObjectDataSource里的一条多条件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"];
        }
  • 相关阅读:
    js的异步运行机制
    Android NDK 安装与配置
    JNI与NDK的区别
    Android 开发手记一NDK编程实例
    android AIDL服务
    Android Service学习之AIDL, Parcelable和远程服务
    Android中JNI的使用方法
    Android之drawable state各个属性详解
    android中的Touch研究
    Android中的ListView点击时的背景颜色设置
  • 原文地址:https://www.cnblogs.com/thcjp/p/459988.html
Copyright © 2011-2022 走看看