我刚从C#开始,我还在学习这些东西。我尝试使用从选择框填充的多个WHERE子句显示数据。 我发现if(Request.QueryString [“...”]。IsEmpty())
的问题这仅适用于第一个选择框。如果选中此框,则省略所有下一个框选择。如果未选择第一个框,则不显示任何数据。我怎么解决这个问题?
这是我的代码:
var db = Database.Open("Eason");
var Warranty = Request["Warranty"];
var EbookM = Request["EbookM"];
if (IsPost)
{
Warranty = Request["Warranty"];
if (Warranty.IsEmpty()) {
selectQ = "SELECT * FROM E_Reader";}
Warranty = Request["EbookM"];
if (EbookM.IsEmpty()) {
selectQ = "SELECT * FROM E_Reader";}
if(Request.QueryString["Warranty"].IsEmpty() ) {
selectQ = "SELECT * FROM E_Reader";
searchTerm1 = Request.QueryString["Warranty"];
searchTerm2 =Request.QueryString["EbookM"];
}
var selectedData1 = db.Query(selectQ, searchTerm1, searchTerm2);
var grid = new WebGrid(source: selectedData1, defaultSort: "Ebook_Model", rowsPerPage: 10);
答案 0 :(得分:0)
排序:)。应该有WHERE ..... AND .....而不是OR - 刚才是
最终代码是:
var db = Database.Open("Eason");
var sqlQ = "SELECT * FROM E_Reader WHERE In_Warranty LIKE @0 AND Ebook_Made LIKE @1";
var Warranty = "%" + Request["Warranty"] + "%";
var Made = "%" + Request["Made"] + "%";
var selectedData = db.Query(sqlQ, Warranty, Made);
var grid = new WebGrid(source: selectedData, defaultSort: "Ebook_Made");