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

如果使用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語句發生錯誤
