多條件檢索SQL語句的拼接


需求分析 :  

 在使用多條件查詢的時候,比如這樣的一個圖書查詢頁面:

 

如果使用sql語句: select * from book where bookname='name' and author='author' and address='address‘

但是,在不知道哪一欄會被輸入進去,where和and 的使用,有點不知所錯,當然,也可以把所有可能的情況所使用的SQL語句一個一個的邏輯判斷,

顯然,這樣子是很不合適的,這時候,就需要對sql語句的拼接。

 

            string sql = "select * from Book";
            StringBuilder sb = new StringBuilder();
            sb.Append(sql);
            List<string> wheres = new List<string>();
            List<SqlParameter> parma = new List<SqlParameter>();

            if (textBox1.Text.Length > 0)
            {
                wheres.Add(" bookname  like @name ");
                //賦值,要使用到模糊查詢,%號的添加技巧
                parma.Add(new SqlParameter("@name", "%" + textBox1.Text + "%"));

            }
            if (textBox2.Text.Length > 0)
            {
                wheres.Add(" bookauthor like @author ");
                parma.Add(new SqlParameter("@author","%"+textBox2.Text+"%"));
            }
            if (textBox3.Text.Length > 0)
            {
                wheres.Add(" bookaddress like @address ");
                parma.Add(new SqlParameter("@address", "%" + textBox3.Text + "%"));
            }
            //有一個條件,就添加where,然后多條件就在中間加and
            if (wheres.Count > 0)
            {
                sb.Append(" where ");
                sb.Append(string.Join(" and ", wheres.ToArray()));
            }    

 

結:  使用到list集合,以及字符串處理的插入 。需要注意的是,list集合中的sql條件語句 要多加一個或者兩個空格,避免把 where或者and插入的時候,兩個字符串粘在一起,導致sql語句發生錯誤

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM