sql = "select * from Commodity"; hs = new Hashtable(); if (txt_name.Text.Trim() != "") { sql += " where Name like @Name"; hs.Add("@Name", "%" + txt_name.Text.Trim() + "%"); }
一、通过字符串操作,查看之前是否有Where if (txt_jgup.Text.Trim() != "") { if (sql.Contains("where")) sql += " and Price >= @Priceup"; else sql += " where Price >= @Priceup"; hs.Add("@Priceup", txt_jgup.Text.Trim()); }
二、通过标记变量; if (txt_numup.Text.Trim() != "") { ) sql += " and Stock >= @Stockup"; else sql += " where Stock >= @Stockup"; count++; hs.Add("@Stockup", txt_numup.Text.Trim()); }
三、拼接不参与搜索的用,1=1等替代 if (txt_name.Text.Trim() != "") { sql += " where Name like @Name"; hs.Add("@Name", "%" + txt_name.Text.Trim() + "%"); } else { sql += " where 1=1"; } if (txt_numup.Text.Trim() != "") { sql += " and Stock >= @Stockup"; hs.Add("@Stockup", txt_numup.Text.Trim()); }else { sql += " and 2=2"; }
组合后的分页查询语句需要添加,上面生成的语句,限定Select查询范围