關於ASP.NET中后台數據庫和前台的數據控件的綁定問題
最近一直在學習個知識點,自己創建了SQL Server數據庫表,想在ASP.NET中連接數據庫,並把數據庫中的數據顯示在前台,注意,這里的數據顯示不是使用asp.net自帶的數據顯示控件進行數據的綁定,而是使用開源的數據表格插件DataTables。這樣的顯示效果要比DataGridView好看的多。下面將詳細的過程記錄如下,供初學者參考。
一、要將SQL Server數據庫中的數據通過普通的table表格顯示在頁面上,首先是使用一個綁定數據的控件:Repeater 控件,在使用綁定表達式:<%#字段名稱>。在后台使用DataBind方法。
具體事例代碼:
前台:
<table id="tb_example" class="display cell-border hover dt-body-center row-border order-column "> <thead> <tr> <th>公司名稱</th> <th>公司地點</th> <th>注冊資金</th> <th>公司編號</th> <th>公司代表</th> </tr> </thead> <asp:Repeater ID="ratTable" runat="server"> <ItemTemplate> <tr> <td><%#Eval("PRONAME") %> </td> <td><%#Eval("PROESS") %></td> <td><%#Eval("PROMENOY") %></td> <td><%#Eval("PROID") %></td> <td><%#Eval("PROPERSON") %></td> </tr> </ItemTemplate> </asp:Repeater> </table>
后台:
string SqlStr = "Server=(local);User Id=sa;Pwd=123;DataBase=ZBD";//連接本地的SQL Server數據 SqlConnection conn = new SqlConnection(SqlStr); //實例化SQLConnection對象進行連接數據 string sqlstr = "select PRONAME,PROID,PROESS,PROMENOY,PROPERSON from tb_zbd ";//定義SQL查詢語句用於查詢表數據 SqlCommand myCmd = new SqlCommand(sqlstr, conn); DataSet ds = new DataSet();//定義dataset對象 conn.Open();//打開數據庫 SqlDataAdapter da = new SqlDataAdapter(sqlstr, conn); conn.Close(); da.Fill(ds); ratTable.DataSource = ds.Tables[0]; ratTable.DataBind();
代碼說明:上述代碼定義了DataAdapter對象。DataAdapter對象是DataSet對象和數據源之間聯系的橋梁,主要是從數據源中檢索數據、填充DataSet對象中的表或者把用戶對DataSet對象做出的更改寫入到數據源。
運行操作的顯示結果如下圖:
二、數據綁定的相關知識點總結
數據綁定是指從數據源獲取數據向數據源寫入數據。簡單的數據綁定可以使對變量或屬性的綁定,比較復雜的是對ASP.NET數據綁定控件的操作。
說明:所有的數據綁定表示式都必須包含在<%#...%>中。執行綁定操作要么執行Page對象的DataBind方法,要么執行數據綁定控件對應的實例對象的DataBind方法。
1、簡單的屬性綁定
基於屬性的綁定所涉及的屬性必須包含get訪問器,因為在數據綁定過程中,數據顯示控件需要通過屬性的get訪問器從屬性中讀取數據。
語法:<%# 屬性名稱%>
在后台執行Page.DataBind()方法。
技巧:簡單變量的數據綁定類似於簡單的屬性綁定。例如定義一個公共的變量並賦值,在前台的label控件額Text屬性中使用數據語法<%#,,,%>也可以進行綁定。
2、表達式綁定
將數據綁定顯示控件之前,對數據的處理,通過表示式將執行的結果顯示在控件之上。
3、集合綁定
像一些比較特殊的數據控件需要以數據集合作為數據源進行數據的綁定。
4、技巧總結:對於數據控件的綁定,是在數據綁定表達式中使用Eval和Bind方法進行數據綁定。其中二者的區別;
<%#Eval("數據字段名稱")%>這種方法是單向綁定,只具有讀取功能。
<%#Bind("數據字段名稱")%>這種方法是雙向的,同時具有讀取和寫入的功能。