我试图在postgresql中为下面的select语句传递参数,但它没有返回任何行,
cmd.Parameters.AddWithValue("@name", richTextBox_searchEmp.Text);
string sql = "select * from tbl_emp_Info where LOWER(firstname) like LOWER('@name%');";
where- richTextBox_searchEmp.Text是“第一个” 也试过 -
cmd.Parameters.AddWithValue("@name", NpgsqlDbType.Char , searchEmp.Text);
同时,以下参数少查询总是返回正确的结果。
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;
答案 0 :(得分:3)
将参数传递给%like
将查询更改为
string sql = "select * from tbl_emp_Info where LOWER(firstname) like LOWER(@name);";
并传递@name,如
cmd.Parameters.AddWithValue("@name", "%" + searchEmp.Text + "%");