您的位置:首页 > 运维架构

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

2010-10-28 17:31 627 查看

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两章

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

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

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

2009/5/15上市

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



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

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: