MIS2000 Lab. -- ASP.NET学习&分享 / ASP.NET案例精编(清华大学出版社)
您好,我来自台湾。很高兴与各位分享一些成果。希望对您有帮助。出版书籍是「ASP.NET案例精编 / 清华大学出版社」。

DataBinding?资料绑定? #3--以DropDownList为例

http://www.dotblogs.com.tw/mis2000lab/archive/2008/10/15/databinding_column081015.aspx

 

本文是一系列的文章,建议您依照顺序来观赏:

请看过前面的文章后,再继续看下去:

 DataBinding?资料绑定? #1--DataSourceID与DataSource? (2010-10-28 17:14)

DataBinding?资料绑定? #2--DataSet + 绑定表达式 (2010-10-28 17:25)

 

 

跟上一篇文章差不多,我们以 DropDownList为例。
继续讨论 DataSet里面的 DataTable,这次介绍 Column.....

本文会真正使用到 DataBinding,写法单纯多了,

不像上一篇文章这么繁琐

 

我们继续看看这个例子。

 

下面的范例,可以放在本书的 14.3,作为课后补充!

对于 ADO.NET / DataSet不熟悉的朋友,请看上一篇文章  or  本书 1314两章

因为这个范例是给本书读者,作为课后的补充。   事先会假设读者已经有底子了

 

ASP.NET案例精编(清华大学出版社 / 作者MIS2000Lab)

http://www.china-pub.com/46063 

2009/5/15上市

市场价 :¥59.80 RMB(人民幣)

 

ASP.NET案例精编--适用于VS2005/2008

   

 =========================================================================

 

HTML画面的原始码只有一个 DropDownList控件而已

    <form id="form1" runat="server">
   <div>
    
       <asp:DropDownList ID="DropDownList1" runat="server">
       </asp:DropDownList>
   
   </div>
   </form>

画面上只有一个 DropDownList控件,为何能连结数据库?捞出许多资料?

怎么做到的?......................方法很多,但我们采用 DataSet的DataTable来作。

 

 

 =========================================================================

后置程序代码(for C#):

    protected void Page_Load(objectsender, EventArgs e)
   {
       SqlConnection Conn = new SqlConnection("数据库的连结字符串");
        //Conn.Open();    //第一、连结数据库

        SqlDataAdapterda = new SqlDataAdapter("select top 10 id,title,summary from test order byid", Conn);
       DataSet ds = new DataSet();
       da.Fill(ds, "test");     //第二、执行SQL指令,取出数据

        //批注:执行SQL指令之后,把数据库捞出来的结果,交由画面上 DropDownList控件来呈现。
       DropDownList1.DataValueField = "id";       //在此输入的是数据表的字段名称
       DropDownList1.DataTextField = "title";      //在此输入的是数据表的字段名称


       DropDownList1.DataSource = ds.Tables["test"].DefaultView;
       DropDownList1.DataBind(); 


        //Conn.Close();      //第四、关闭数据库的连接与相关资源
   }

 

 

后置程序代码(for VB):

 


    Protected Sub Page_Load(ByValsender As Object, ByVal e As System.EventArgs) Handles Me.Load
       Dim Conn As SqlConnection = New SqlConnection("数据库的连结字符串")
        'Conn.Open();   '--第一、连结数据库

        Dim da AsSqlDataAdapter = New SqlDataAdapter("select top 30 id,title,summary from testorder by id", Conn)
       Dim ds As DataSet = New DataSet
       da.Fill(ds, "test")    '--第二、执行SQL指令,取出数据

       '--批注:执行SQL指令之后,把数据库捞出来的结果,交由画面上 DropDownList控件来呈现。       
       DropDownList1.DataValueField = "id"     '--在此输入的是数据表的字段名称
       DropDownList1.DataTextField = "title"   '--在此输入的是数据表的字段名称


       '************** DataBinding **********************
        DropDownList1.DataSource = ds.Tables("test").DefaultView
        DropDownList1.DataBind()

       'Conn.Close()    '--第四、关闭数据库的连接与相关资源
   End Sub

上面的范例,有出现 DataBinding的动作,

比较看看,跟上一篇文章的作法,有何差异?

 

 

上面的 DropDownList控件,请看本书 3.7,我写了很多范例,很详细。

DropDownList学会了,其它类似的 ListBox / CheckBox.....都大同小异。   学通了,就能举一反三

DataAdapter会自动开启、关闭数据库的联机,所以我们不用手动去控制他。请看本书 14.3,在此不赘述。 

 

 

 

 ======== 第二种作法  =====================================================================

 

上面的后置程序代码( forC#),您也可以写成下面这样

 

    protected void Page_Load(object sender,EventArgs e)
   {
       SqlConnection Conn = new SqlConnection("数据库的连结字符串");
       //Conn.Open();   //第一、连结数据库

        SqlDataAdapterda = new SqlDataAdapter("select top 10 id,title,summary from test order byid", Conn);
       DataSet ds = new DataSet();
       da.Fill(ds, "test");  //第二、执行SQL指令,取出数据

       //批注:执行SQL指令之后,把数据库捞出来的结果,交由画面上 DropDownList控件来呈现。

       //******  第二种写法  *********************
        DropDownList1.DataValueField =ds.Tables["test"].Columns[0].ToString()//数据表的字段名称
        DropDownList1.DataTextField =ds.Tables["test"].Columns[1].ToString();    //数据表的字段名称
        //****************************************

 

        DropDownList1.DataSource = ds.Tables["test"].DefaultView;
        DropDownList1.DataBind();

        //Conn.Close();   //第四、关闭数据库的连接与相关资源
   }

 

后置程序代码( for VB)

 

    Protected Sub Page_Load(ByValsender As Object, ByVal e As System.EventArgs) Handles Me.Load
       Dim Conn As SqlConnection = New SqlConnection("数据库的连结字符串")
       'Conn.Open();   '第一、连结数据库

        Dim da AsSqlDataAdapter = New SqlDataAdapter("select top 30 id,title,summary from testorder by id", Conn)
       Dim ds As DataSet = New DataSet
       da.Fill(ds, "test")    '第二、执行SQL指令,取出数据

       '批注:执行SQL指令之后,把数据库捞出来的结果,交由画面上 DropDownList控件来呈现。

        '******  第二种写法  *********************
       DropDownList1.DataValueField = ds.Tables("test").Columns(0).ToString() '--数据表的[字段名称]
       DropDownList1.DataTextField = ds.Tables("test").Columns(1).ToString() '--数据表的[字段名称]
        '****************************************


       DropDownList1.DataSource = ds.Tables("test").DefaultView
       DropDownList1.DataBind()
       'Conn.Close()    '第四、关闭数据库的连接与相关资源
   End Sub

 

上面的范例,有出现 DataBinding的动作,

比较看看,跟上一篇文章的作法,有何差异?

 

上面的程序(第二种作法),重点解说如下:

  • Row ====>列,横的一列,类似数据表(Table)里面一笔一笔的纪录!
  • Column==>行,直的一行。就是数据表里面的「字段名称」!

                   Column 1   /   Column 2   /   Column3 .......
                    字段名称1   /   字段名称 2   /  字段名称 3 .......
----------------------------------------------------------------
Row 1        1111111         张小强          班长 .......
Row 2        2222222         马小九          副班长 .......
Row 3        3333333         蓝小丁          风纪股长 .......

 

当然, DropDownList + SqlDataSource,只要设定几下也能有相同结果出来。

这个范例是另外一种写法,仅供各位参考。

 

 

您也可以看看这篇文章,这个范例,我们用 DataSourceID来作数据系结

[习题]两个SqlDataSource,共享一个 GridView

 

 

posted on 2010-10-28 17:31  MIS2000 Lab.  阅读(351)  评论(0编辑  收藏  举报


ASP.NET案例精编——适用于VS 2005/2008(配光盘)
 

当当网购买 http://product.dangdang.com/product.aspx?product_id=20583373&ref=search-1-pub