剛開始接觸ASP.NET中的一些控件的時候,先前沒有任何概念,在不停地做練習,做項目的過程中,不斷地逼迫自己去學習更多。書本上的案例大多是綁定數據庫數據源來實現的,這樣只能綁死數據,不能動態篩選。在數據顯示變動不大的時候,利用這種方法簡單,然而如果再加入篩選、多條件篩選等等操作的時候,利用拼接查詢語句實現稍微簡單點。
關於拼接sql語句動態綁定數據源的方法詳解:
1、首先在頁面中拉一個GridView控件

2、在切換到界面設計中,選擇編輯列——【BoundField】——【添加】——【HeaderText】中輸入列名——【DataField】中輸入與數據庫中相應字段匹配的名稱,在最后將自動生成字段的復選框去掉勾選(否則生成的表格會將查詢到的所有列顯示出來)

3、前台工作基本結束,后台代碼中,先在引用中添加Configuration引用,連接數據庫需要用到。將需要通過GridView顯示出來的數據的查詢事件寫到Page_Load中
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
string constr = ConfigurationManager.ConnectionStrings["str"].ConnectionString.ToString(); //連接字符串
SqlConnection con = new SqlConnection(constr);//創建連接
con.Open();//打開連接
StringBuilder s = new StringBuilder();//字符串拼接對象
s.Append("select * from Equip where 1=1");//要執行的sql語句
SqlDataAdapter adsa = new SqlDataAdapter(s.ToString(), con);
//或直接寫成 SqlDataAdapter adsa = new SqlDataAdapter("select * from Equip", con);
DataSet ds = new DataSet();
adsa.Fill(ds);
if (ds.Tables[0].Rows.Count > 0)
{
GridView1.DataSource = ds;
GridView1.DataBind();
}
con.Close();
}
}
4、此上是沒有篩選條件的查詢,如果需要篩選信息,則可以通過下拉框或者文本框輸入要查找的內容,點擊按鈕進行控件數據源的重新綁定,用到的關鍵就是sql語句的拼接
protected void Butsel_Click(object sender, EventArgs e)
{
string jfid = Dropjf.Text;//獲取篩選的機房號
string eqname = Dropeq.Text;//獲取篩選設備名稱
string constr = ConfigurationManager.ConnectionStrings["str"].ConnectionString.ToString(); //連接字符串
SqlConnection con = new SqlConnection(constr);
con.Open();
StringBuilder s = new StringBuilder();
s.Append("select * from Equip where 1=1");
if (jfid != "全部")
{
s.Append("and storage="+jfid);
}
if (eqname != "全部")
{
s.Append("and eqname=" + "'"+eqname+"'");
}
SqlDataAdapter adsa = new SqlDataAdapter(s.ToString(), con);
DataSet ds = new DataSet();
adsa.Fill(ds);
if (ds.Tables[0].Rows.Count > 0)
{
GridView1.DataSource = ds;
GridView1.DataBind();
}
con.Close();
}
5、以此類推,能夠實現點擊按鈕,進行數據的篩選。
在網上有的博客中也看到有實現不用點擊按鈕就可以篩選出所要數據,並沒有深入了解,目前也只能這樣重綁數據源。
