2015-03-30 29 views
1

我試圖通過參數在PostgreSQL中選擇下面的語句,但它沒有返回任何行,傳遞參數的SELECT語句中的PostgreSQL

cmd.Parameters.AddWithValue("@name", richTextBox_searchEmp.Text);     
string sql = "select * from tbl_emp_Info where LOWER(firstname) like LOWER('@name%');"; 

中─richTextBox_searchEmp.Text是「第一」 也有嘗試 -

cmd.Parameters.AddWithValue("@name", NpgsqlDbType.Char , searchEmp.Text); 

while,參數less查詢下面總是返回正確的結果。

string sql = "select * from tbl_emp_Info where LOWER(firstname) like LOWER('first%');"; 

請幫忙!!!

完整的代碼 -

  conn.Open(); 
      cmd.Parameters.AddWithValue("@name", NpgsqlDbType.Char , richTextBox_searchEmp.Text); 

      string sql = "select * from tbl_emp_Info where LOWER(firstname) like LOWER('@name%');"; 

      NpgsqlDataAdapter da = new NpgsqlDataAdapter(sql, conn); 

      cmd.Connection = conn; 
      cmd.CommandText = sql; 
      cmd.ExecuteNonQuery(); 

      ds.Reset(); 
      da.Fill(ds); 
      dt = ds.Tables[0]; 
      dataGridView.DataSource = dt; 

回答

2

與%通過你的參數像你查詢到

string sql = "select * from tbl_emp_Info where LOWER(firstname) like LOWER(@name);"; 

變化,並通過@name像

cmd.Parameters.AddWithValue("@name", "%" + searchEmp.Text + "%"); 
+0

感謝Dnyanesh,試圖這但沒有工作:( 我已經通過以下方式實現了它,但仍在搜索參數化方式來執行此操作。 string sql =「select * from tbl_emp_Info where LOWER(firstname)like LOWER('」+ richTextBox_searchEmp.Text +「%');」; – harper 2015-03-31 17:33:44

+0

嘗試更新的答案通過首先添加「%」 – Dnyanesh 2015-03-31 17:34:52

+0

仍然無法正常工作... – harper 2015-04-03 17:52:15