在postgresql中的select语句中传递参数

时间:2015-03-30 17:36:29

标签: c# .net postgresql

我试图在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;

1 个答案:

答案 0 :(得分:3)

将参数传递给%like

将查询更改为

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

并传递@name,如

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