C#中MySQL語句帶參數的模糊比對問題

來源:互聯網
上載者:User
 用的是MySQL資料庫,但是當我用帶參數的sql語句進行模糊查詢時,發現MySQL沒有識別我的參數中的內容。經過了多次實驗,終於找到了答案,拿出來和大家分享,不多說了,詳細如下:
  public DataTable GetUserList(string strParam1,string strParam2,string strParam3,string strParam4)
  {
  StringBuilder sqlContent = new StringBuilder();
  ArrayList paramList = new ArrayList();
  sqlContent.Append(" SELECT ");
  sqlContent.Append(" column1");
  sqlContent.Append(" ,column2");
  sqlContent.Append(" ,column3 ");
  sqlContent.Append(" ,column4 ");
  sqlContent.Append(" FROM ");
  sqlContent.Append(" tab_temp ");
  sqlContent.Append(" WHERE 1=1");
  // 判斷參數是否為空白或""
  if (!String.IsNullOrEmpty(strParam1))
  {
  sqlContent.Append(" AND column1 LIKE @param1 ");
  // 添加參數
  paramList.Add(new MySqlParameter("@param1", "%" + strParam1+ "%"));
  }
  if (!String.IsNullOrEmpty(strParam2))
  {
  sqlContent.Append(" AND column2 LIKE @param2 ");
  paramList.Add(new MySqlParameter("@param2", "%" + strParam2 + "%"));
  }
  if (!String.IsNullOrEmpty(strParam3))
  {
  sqlContent.Append(" AND column3 LIKE @param3 ");
  paramList.Add(new MySqlParameter("@param3", "%" + strParam3+ "%"));
  }
  if (!String.IsNullOrEmpty(strParam4))
  {
  sqlContent.Append(" AND column4 LIKE @param4 ");
  paramList.Add(new MySqlParameter("@param4", "%" + strParam4+ "%"));
  }
  try
  {
  // 擷取DB連結
  dbConn.getConnection();
  objDT = new DataTable();
  // 調用DBUtil中查詢方法
  objDT = dbConn.executeQuery(sqlContent.ToString(), paramList);
  }
  catch (Exception e)
  {
  throw e;
  }
  finally
  {
  // 關閉DB連結
  dbConn.closeConnection();
  }
  return objDT;
  }
  正確的寫法:
  sqlContent.Append(" AND column1 LIKE @param1 ");
  // 添加參數
  paramList.Add(new MySqlParameter("@param1", "%" + strParam1+ "%"));
  錯誤的寫法:
  sqlContent.Append(" AND column1 LIKE '%@param1%' ");
  // 添加參數
  paramList.Add(new MySqlParameter("@param1", strParam1));

轉貼於:電腦二級考試_考試大
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.