大家看下这段代码能实现搜索功能吗?
user.master.aspx.cs的代码:protected void Button1_Click(object sender, EventArgs e)
{
string findtype = "";
switch (DropDownList1.SelectedValue)
{
case "名称":
findtype = "select * from tblJiaju where jiajuName like '%" + TextBox1.Text + "%'";
break;
case "品牌":
findtype = " select * from tblJiaju where brand like '%" + TextBox1.Text + "%'";
break;
case "材质":
findtype = " select * from tblJiaju where material like '%" + TextBox1.Text + "%'";
break;
}
Response.Cookies["findtype"].Value = findtype;
Response.Cookies["findtype"].Expires = DateTime.Now.AddHours(1);
Response.Redirect("findjiaju.aspx");
findjiaju.aspx.cs的代码:
--------------------编程问答-------------------- public partial class findjiaju : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
String jiajuinfo;
jiajuinfo = Request.QueryString["findtype"];
DataTable dt = Class1.ExecSel(jiajuinfo);
//如果搜索不到,则提示没有家具
if (dt == null || dt.Rows.Count == 0)
{
Label7.Text = "没有存货";
return;
}
else
{
//这个信息可以放在div里,这样如果搜索不到家具,则不显示div
//现在搜索不到.显示都是空的
int id = Convert.ToInt32(dt.Rows[0][0]);
string info = "select * from [tblJiaju] where jiajuID=" + id;
DataTable datatable = Class1.ExecSel(info);
Label1.Text = dt.Rows[0][1].ToString();
Label2.Text = dt.Rows[0][2].ToString();
Label3.Text = dt.Rows[0][3].ToString();
Label4.Text = dt.Rows[0][4].ToString();
Label5.Text = dt.Rows[0][5].ToString();
Label6.Text = dt.Rows[0][6].ToString();
if (Convert.ToInt32(dt.Rows[0][8]) == 0)
{
Label7.Text = "没有存货";
}
if (Convert.ToInt32(dt.Rows[0][8]) == 1)
{
Label7.Text = "有存货";
}
Image1.ImageUrl = "~/picture/" + dt.Rows[0][7].ToString();
}
}
} --------------------编程问答-------------------- 调用数据库的代码:
public static DataTable ExecSel(string sql)
{
//建立连接
SqlConnection con = Class1.DBconnection();
con.Open();
//查询命令
SqlCommand com = new SqlCommand(sql, con);
//建立适配器
SqlDataAdapter oda = new SqlDataAdapter();
//建立dataset
DataSet ds = new DataSet();
oda.SelectCommand = com;
//传递查询结果
oda.Fill(ds);
con.Close();
return ds.Tables[0];
}
运行结果出错如下:
ExecuteReader: CommandText 属性尚未初始化
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.InvalidOperationException: ExecuteReader: CommandText 属性尚未初始化
源错误:
行 39: oda.SelectCommand = com;
行 40: //传递查询结果
行 41: oda.Fill(ds);
行 42: con.Close();
行 43: return ds.Tables[0];
--------------------编程问答-------------------- 用Cookie来传递Sql代码,很有创意.
不过以后不要这么玩了.
直接用url 参数把DropDownList1.SelectedValue传递到别的网页.在那里在拼接Sql代码. --------------------编程问答-------------------- 你一步一步调试,然后就知道发生问题在哪了,那么多代码贴出来,看的眼花 --------------------编程问答-------------------- string findtype = "";
---
这个findtype应该是url参数,而不是select语句..
select语句可以到目标页面构建.. --------------------编程问答-------------------- 汗,用cookie的,有创意.
拼接还是尽量不要用的好,参数化查询比较好. --------------------编程问答-------------------- ExecuteReader: CommandText 属性尚未初始化
============================
是不是sql语句没有传过来呀。
补充:.NET技术 , ASP.NET