科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道ADO.NET 数据库实例教程

ADO.NET 数据库实例教程

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

ADO.NET数据库编程比较复杂,名目繁多的类、对象、属性、方法让每一个编程者都感觉恼火。本文旨在介绍ASP.NETBeta2数据库编程的主要内容,帮助编程者最快的了解ADO.NET数据库编程的精髓。

作者:巧巧读书 来源:巧巧读书 2008年7月25日

关键字: ADO.NET 电子邮件 Foxmail

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共4页)

  三、 DataSet的使用

  在第一章我们介绍了数据连接、执行查询等内容,第二章我们介绍了DataSet的方方面面,这一章我们将具体使用DataSet。

  DataSet <-> Data Source

  DataSet和Data Source通过DataAdapter进行联系,当DataSet取得数据库数据以后,就和数据库断开连接,针对数据作的所有数据修改在没有提交以前都在DataSet里面保存。

  数据修改

  我们将通过一个小的举例来说明数据怎样被修改和提交。

  这是数据结构(Access设计)

  


Field Name Type FName LName ID
FName Text Philip Quinn 1
LName Text Joesph Payne 2
ID AutoNumber Douglas Adams 3
    Michael Okuda 4

  举例一:

  我们将一段一段的看程序代码:

  <%@ Page Language="VB" %>

  <%@ Import Namespace="System.Data" %>

  <%@ Import Namespace="System.Data.Oledb" %>

  <script language="VB" runat="server">

  Sub Page_Load(sender as object, e as eventargs)

  以上代码导入NameSpace同时说明编程语言为VB;

  Dim objConn as New OleDBConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=e:\sff\site\db\test.mdb")

  objConn.Open()

  Dim ds as Dataset = New DataSet()

  Dim objAdapter as New OleDbDataAdapter("SELECT * FROM users", objConn)

  Dim objCmdBld as New OleDbCommandBuilder(objAdapter)

  objAdapter.Fill(ds, "users")

  以上代码建立了Connection、DataAdapter和CommandBuilder,并且填充了DataSet。我们必须注意以下几点:

  一、 DataAdapter是数据和DataSet之间的桥梁;

  二、 CommandBuilder建SQL语句来执行;

  Dim drow as DataRow

  以上语句声明一个DataRow;

  drow = ds.Tables("users").NewRow()

  drow(0) = "Gene"

  drow(1) = "Rodenberry"

  ds.Tables("users").Rows.Add(drow)

  drow = ds.Tables("users").NewRow()

  drow(0) = "Maxwell"

  drow(1) = "Stewart"

  ds.Tables("users").Rows.Add(drow)

  以上代码为DataSet增加一个新的列;

  objAdapter.Update(ds, "users")

  以上代码将更新提交到数据库;

  End Sub

  </script>

  现在看看数据库,会发现已经多了两列。

  另外一个举例

  我们可以看一个完整的举例:

  <%@ Page Language="VB" Debug="true" %>

  <%@ Import Namespace="System.Data" %>

  <%@ Import Namespace="System.Data.Oledb" %>

  <script language="VB" runat="server">

  Sub Page_Load(sender as object, e as eventargs)

  Dim objConn as New OleDBConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=e:\sff\site\db\test.mdb")

  objConn.Open()

  Dim ds as Dataset = New DataSet()

  Dim objAdapter as New OleDbDataAdapter("SELECT * FROM users", objConn)

  Dim objCmdBld as New OleDbCommandBuilder(objAdapter)

  objAdapter.Fill(ds, "users")

  Dim drow as DataRow

  drow = ds.Tables("users").Rows(1)

  drow(0) = "Joseph"

  ds.Tables("users").Rows(0).AcceptChanges

  objAdapter.Update(ds, "users")

  End Sub

  </script>

  总结:

  以上我们知道了怎样更新DataSet的数据,可能那些并不是特别实用,下一章我们将涉及到用较好的方式显示数据和通过TextBox修改数据。

  四、数据显示和修改

  这一章我们将学习怎样显示数据,喜欢偷懒的你可以从拷贝以下代码开始:

  <%@ Page Language="VB" Debug="true" %>

  <%@ Import Namespace="System.Data" %>

  <%@ Import Namespace="System.Data.Oledb" %>

  <script language="VB" runat="server">

  Sub Page_Load(sender as object, e as eventargs)

  Dim objConn as New OleDBConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=e:\sff\site\db\test.mdb")

  objConn.Open()

  Dim ds as Dataset = New DataSet()

  Dim objAdapter as New OleDbDataAdapter("SELECT * FROM users", objConn)

  Dim objCmdBld as New OleDbCommandBuilder(objAdapter)

  objAdapter.Fill(ds, "users")

  Repeater

  Repeater是一个根据面板循环显示数据的控件。

  ItemTemplate:数据主要在这里显示

  AlternativeItemTemplate:利用它可以应用交替的样式;

  HeaderTemplate:头格式;

  SeparatorTemplate:分隔数据列;

  FooterTemplate:脚格式

  DataBind()

  DataBind()将数据与页面控件绑定:

  Repeater1.DataSource = ds.Tables("users").DefaultView

  DataBind()

  以上代码将数据绑定到Repeater,如果没有绑定,数据不会显示。

  其他代码

  以下是举例的其他代码:

  Rpt.DataSource = ds.Tables("users").DefaultView

  DataBind()

  End Sub

  </script>

  <html><body><font face="Arial" size="2">

  <asp:repeater id="Rpt" runat="server">

  <HeaderTemplate>

  <table border="0" cellspacing="1" cellpadding="3">

  <tr>

  <td bgcolor="#6699FF" width="25%">Last Name</td>

  <td bgcolor="#6699FF" width="25%">First Name</td>

  </tr>

  </HeaderTemplate>

  <ItemTemplate>

  <tr>

  <td>

  <%# Container.DataItem("LName") %>

  </td><td>

  <%# Container.DataItem("FName") %>

  </td>

  </tr>

  </ItemTemplate>

  <FooterTemplate>

  </table>

  </FooterTemplate>

  </asp:repeater>

  </font></body></html>

  说明:

  一、 设置了Repeater的DataSource;

  二、 绑定数据到Repeater;

  三、 Repeater数据控件开始;

  四、 HeadTemplate定义Repeater的头信息;

  五、 ItemTemplate定义具体数据填充;

  六、 FooterTemplate定义Repeater脚信息;

  DataList

  DataList和Repeater有点相似,和Repeater不同的是,DataList可以编辑数据。可以和Repeater一样使用Template,但是它具有两点不同:

  SelectedItemTemplate:显示选择的列;

  EditItemTemplate:显示要编辑的列;

  以下是一个使用DataList的简单举例:

  dl.DataSource = ds.Tables("users").DefaultView

  Databind()

  End Sub

  Sub dl_ItemCommand(sender as object, e as DataListCommandEventArgs)

  dl.SelectedIndex = e.Item.ItemIndex

  dl.DataBind()

  End Sub

  </script>

  <html><body><font face="arial" size="2"><form runat="server">

  <asp:datalist id="dl" runat="server"

  HeaderStyle-BackColor="#6699FF"

  SelectedItemStyle-BackColor="#6666FF"

  SelectedItemStyle-ForeColor="#FFFFFF"

  RepeatLayout = "table"

  RepeatDirection = "vertical"

  DataKeyField = "ID"

  OnItemCommand="dl_ItemCommand">

  <HeaderTemplate>

  Last Name, click for full name.

  </HeaderTemplate>

  <ItemTemplate>

  <asp:linkbutton id="b1" runat="server" Text='<%# Container.DataItem("LName") %>' CommandName = "select" />

  </ItemTemplate>

  <SelecteditemTemplate>

  <%# Container.DataItem("LName") &", " &Container.DataItem("FName") %>

  </SelectedItemTemplate>

  </asp:datalist>

  </form></font>

  </body>

  </html>

  说明:

  一、 绑定数据以后,建立了一个过程;

  二、 将DataList放入Form中,因为在以下的步骤中要求根据选择列刷新页面;

  三、 接着定义了一些数据显示格式;

  四、 HeaderTemplate:DataList头信息;

  五、 ItemTemplate:加入链接,定义事件;

  六、 SelectedItemTemplate:显示First 和 Last Name;

  DataGrid

  可能它是功能最强大的控件,不管简单还是复杂它都可以实现。

  和ItemTemplate不同,DataGrid有不同类型的列:

  Bound Columns:DataGird默认列显示方式;

  Button Columns:按钮列;

  Edit Command Column:可以编辑的列;

  Hyperlink Column :带连接的列;

  Templated Column :自定义列显示;

  dg.DataSource = ds.tables("users").DefaultView

  DataBind()

  End Sub

  </script>

  <asp:DataGrid id="dg" runat="server" />

  以上代码很简单,就是绑定数据。

  dg.DataSource = ds.tables("users").DefaultView

  DataBind()

  End Sub

  </script>

  <asp:DataGrid id="dg" runat="server"

  BorderColor="black"

  GridLines="vertical"

  cellpadding="3"

  cellspacing="1"

  width="50%"

  Font-Names="Arial"

  Font-Size="10pt"

  HeaderStyle-BackColor="#6699FF"

  AlternatingItemStyle-BackColor="#6666FF"

  AutoGenerateColumns="False">

  <Columns>

  <asp:BoundColumn HeaderText="ID" DataField="ID" />

  <asp:templateColumn HeaderText="Name">

  <ItemTemplate>

  <asp:label id="Name" runat="server" Text='<%# Container.DataItem("FName") &" " &Container.DataItem("LName") %>' />

  </ItemTemplate>

  </asp:templatecolumn>

  </Columns>

  </asp:datagrid>

  可能有一点复杂,我们看说明:

  一、 绑定数据以后,设置了一些DataSet显示效果,包括字体、表宽、头信息背景颜色、交替背景颜色、是否自动生成数据表等;

  二、 加入一个自定义格式列,该列名为Name,由字段Fname和Lname组成;

  现在才刚刚开始

  可能现在你还没有感受到DataSet的好处,以后的章节我们将学习怎样编辑数据。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章