string CatalogId;
string tkeyword;protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
CatalogId = Request.Params["CatalogId"].ToString(); //未将对象引用设置到对象的实例。 tkeyword = Request.Params["Keyword"].ToString(); //未将对象引用设置到对象的实例。 GetProducts(CatalogId,tkeyword);
}
}
private void GetProducts(string sCatalogId, string skey)
{
string cmdText = "SELECT * FROM Photos ORDER BY Id DESC";
if (sCatalogId != null)
{
cmdText = "SELECT * FROM Photos where CatalogId=" + sCatalogId + " ORDER BY Id DESC";
}
if (skey != null)
{
cmdText = "SELECT * FROM Photos where name like '%" + skey +"%' ORDER BY Id DESC";
}
}为什么会出现这样的错误,如果两个值都给了的话就能显示,但如果只传了一个的话就会出错
那我想一次只传一个值,要么类别,要么关键字的话要怎么做,后面已经有判断了啊,哪里要改一下?
string tkeyword;protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
CatalogId = Request.Params["CatalogId"].ToString(); //未将对象引用设置到对象的实例。 tkeyword = Request.Params["Keyword"].ToString(); //未将对象引用设置到对象的实例。 GetProducts(CatalogId,tkeyword);
}
}
private void GetProducts(string sCatalogId, string skey)
{
string cmdText = "SELECT * FROM Photos ORDER BY Id DESC";
if (sCatalogId != null)
{
cmdText = "SELECT * FROM Photos where CatalogId=" + sCatalogId + " ORDER BY Id DESC";
}
if (skey != null)
{
cmdText = "SELECT * FROM Photos where name like '%" + skey +"%' ORDER BY Id DESC";
}
}为什么会出现这样的错误,如果两个值都给了的话就能显示,但如果只传了一个的话就会出错
那我想一次只传一个值,要么类别,要么关键字的话要怎么做,后面已经有判断了啊,哪里要改一下?
这里就应该判断。Request.Params["CatalogId"]. Request.Params["Keyword"].这2个参数任何一个为空的话ToString().都是会报错的,空对象如何能执行Tostring()方法呢?
if(Request.Params["CatalogId"]!=null)
{
CatalogId = Request.Params["CatalogId"].ToString();
}
if (sCatalogId != null)
{
cmdText = "SELECT * FROM Photos where CatalogId=" + sCatalogId + " ORDER BY Id DESC";
}
esle if (skey != null)
{
cmdText = "SELECT * FROM Photos where name like '%" + skey +"%' ORDER BY Id DESC";
}
tkeyword = !String.IsNullOrEmpty(Request.Params["Keyword"].ToString())?Request.Params["Keyword"].ToString():String.Empty;
{
string cmdText = "SELECT * FROM Photos ORDER BY Id DESC";
if (sCatalogId != null || skey != null)
{
cmdText = "SELECT * FROM Photos where CatalogId=" + sCatalogId + " ORDER BY Id DESC";
cmdText = "SELECT * FROM Photos where name like '%" + skey +"%' ORDER BY Id DESC";
}
}
一次写两个cmdtext这样不行的吧?
private void GetProducts(string sCatalogId, string skey)
{
string cmdText = "SELECT * FROM Photos ORDER BY Id DESC";
string cmdText1 = "SELECT * FROM Photos ORDER BY Id DESC";
if (sCatalogId != null || skey != null)
{
cmdText = "SELECT * FROM Photos where CatalogId=" + sCatalogId + " ORDER BY Id DESC";
cmdText1 = "SELECT * FROM Photos where name like '%" + skey +"%' ORDER BY Id DESC";
}
}
思路大概应这样,对于你这一问题,我没上机测试对不对.