查詢拼接SQL語句,多條件模糊查詢

多條件查詢,使用StringBuilder拼接SQL語句,效果以下:sql

 

當點擊按鈕時代碼以下:ui

private void button1_Click(object sender, EventArgs e)
{
  //假設表名:Books
  //列名:BooksName(圖書名稱) Author(做者) Press(出版社)
  //多條件查詢,要根據用戶輸入的內容來動態拼接SQL語句
  //1.假設若是用戶沒有輸入就查詢全部信息
  StringBuilder builder = new StringBuilder("select * from Books ");
  //在wheres集合中保存全部查詢的SQL語句
  List<string> wheres = new List<string>();
  //把參數也放到集合中
  List<SqlParameter> sqlParameters = new List<SqlParameter>();
  //2.若是用戶輸入了條件,則根據用戶輸入的條件動態拼接SQL語句
  if (txtBookName.Text.Trim().Length>0)
  {
    //builder.Append(" BooksName like @btName");
    wheres.Add(" BooksName like @btName");
    sqlParameters.Add(new SqlParameter("@btName", SqlDbType.NVarChar, 100){ Value="%"+ txtBookName.Text.Trim()+"%" });
  }
  if (txtAuthor.Text.Trim().Length>0)
  {
    //builder.Append(" Author like @Author");
    wheres.Add(" Author like @Author");
    sqlParameters.Add(new SqlParameter("@Author", SqlDbType.NVarChar, 100) { Value = "%" + txtAuthor.Text.Trim() + "%" });
  }
  if (txtPress.Text.Trim().Length>0)
  {
    //builder.Append(" Press like @Press");
    wheres.Add(" Press like @Press");
    sqlParameters.Add(new SqlParameter("@Press", SqlDbType.NVarChar, 100) { Value = "%" + txtPress.Text.Trim() + "%" });
  }
  //拼接SQL語句
  //若是wheres中的集合當中的數據大於0,證實用戶輸入了條件
  if (wheres.Count>0)
  {
    builder.Append(" where ");//只要有查詢條件就拼接一個where條件
    builder.Append(string.Join(" and ", wheres));//而後把後面的條件拼接起來
  }spa

  SqlParameter[] parameters = sqlParameters.ToArray();
  MessageBox.Show(builder.ToString());
  //SqlHelper.ExecuteReader(builder.ToString(),parameters);
}3d

相關文章
相關標籤/搜索