我使用Npgsql查询数据库表并在我的页面/视图上显示结果。 代码工作正常,没有where子句和参数,因为它将表中的所有行都放到视图上。现在我正在尝试使用搜索字符串变量(如果用户输入字符串,那么给我包含这个字符串的表记录)。我的代码如下
string searchValue = TempData["String"].ToString();
var model = new List<ProductViewModel>();
NpgsqlConnection connection = new NpgsqlConnection
("Host=192.168.0.52;Database=test;Username=test;Password=test");
connection.Open();
NpgsqlCommand cmd = new NpgsqlCommand
("SELECT * FROM q_product WHERE q_description like @string", connection);
//lets include our paramater
cmd.Parameters.Add("@string", NpgsqlTypes.NpgsqlDbType.Text);
cmd.Parameters["@string"].Value = searchValue;
cmd.Parameters.AddWithValue(searchValue);
NpgsqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
var prod = new ProductViewModel();
prod.q_description = dr["q_description"].ToString();
prod.q_barcode = dr["q_barcode"].ToString();
model.Add(prod);
}
var pagedProduct = new PaginatedSearch<ProductViewModel>(model, pageIndex, pageSize);
return View(pagedProduct);
当我只有
时,记录会被罚款SELECT * FROM q_product
但是在包含where子句和我的搜索字符串变量之后,我得到一个空页面。我的代码中我做错了什么?
答案 0 :(得分:1)
您可能希望在查询中使用} else if (nummer(drukKnop)) {
if (display === "0") display = drukKnop;
else if (nummer(display)) display = display + drukKnop;
else display = drukKnop;
}
来使用like运算符。
%