六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

ASP.NET講座(5)-數據庫的設置ADO.NET

[摘要]自若干年前推出開放式數據庫連接 (ODBC) 應用程序編程接口 (API) 以來,出現了各種各樣的數據庫訪問技術,而 ADO.NET 是其中最新的一種。在這過程中,發生了許多有趣的事。例如,COM 闖入數據庫領域,開始培植 OLE DB 的殖民進程。然后,大致相當于 OLE DB 自動化版本的 A...

  自若干年前推出開放式數據庫連接 (ODBC) 應用程序編程接口 (API) 以來,出現了各種各樣的數據庫訪問技術,而 ADO.NET 是其中最新的一種。在這過程中,發生了許多有趣的事。例如,COM 闖入數據庫領域,開始培植 OLE DB 的殖民進程。然后,大致相當于 OLE DB 自動化版本的 ActiveX? Data Objects (ADO) 被選來統治 Windows? 數據庫開發者的 Visual Basic? 和 ASP 社區。

  通過 .NET,Microsoft 正在提供通用框架(即 Framework Class Library),其中將包括所有現有的 Windows API 甚至更多的內容。特別值得一提的是,它包括大量常用的庫,而這些庫現在需要通過各個 COM 對象分別獲得。在這些庫中,您會發現 XML 和 ADO 對象模型,它們被集成到了叫做 ADO.NET 的類子樹中。

  ADO.NET 事實上成為構建數據感知 .NET 應用程序的基礎。和 ADO 不同的是,ADO.NET 遵循更通用的原則,不那么專門面向數據庫。ADO.NET 集合了所有允許數據處理的類。這些類表示具有典型數據庫功能(如索引、排序和視圖)的數據容器對象。盡管 ADO.NET 是 .NET 數據庫應用程序的權威解決方案,但從總體設計上來看,它不象 ADO 模型那樣以數據庫為中心,這是 ADO.NET 的一大特點。

  ADO.NET 與 ADO 有很大差異。ADO.NET 是新的數據訪問編程模型,需要開發人員的全面理解、投入和新思維。然而,一旦開始掌握 ADO.NET,您將意識到:原有的 ADO 技巧非常有助于您以不同、卻更巧妙和可靠的方式來創建有效的應用程序和解決各種老問題。
(以上譯自 Microsoft .NET部一位官員的講話)

  5.1 目前的ADO.net

  目前 ADO.NET 提供了兩種托管提供程序:一種用于 SQL Server 7.0 或更高版本,另一種用于其他所有您可能已經安裝的 OLE DB 提供程序。在這兩種情況下您分別使用不同的類,但遵循相似的命名規則。除前綴外,名稱都是相同的。前一種情況前綴為 SQL,后一種情況則是 ADO。

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

  您應該使用 SQL 類訪問 SQL Server 表,因為它們直接進入數據庫服務器的內部 API,跳過了由 OLE DB 提供程序表示的中間層。ADO 類是 OLE DB 提供程序上的 .NET 接口,它們使用 COM Interop 橋進行工作。

  5.2 連接一個數據庫

Dim myConnection As New
 SQLConnection("server=localhost;uid=sa;pwd=;database=pubs")
Dim myCommand As New
 SQLDataSetCommand("select * from Authors", myConnection)

或者
 SQLConnection myConnection = new SQLConnection();
 myConnection.DataSource = "localhost";
 myConnection.UserID = "sa";
 myConnection.Password = "";
 myConnection.ConnectionTimeout = 30;
 myConnection.Open();
 myConnection.Database = "pub";
 myConnection.IsolationLevel = IsolationLevel.ReadCommitted
  

  這里我們需要講述一下Connection的方法和屬性了。

  ConnectionTimeout超時

  DataBase 缺省數據庫

  DataSource DNS

  UserID 原來叫UID

  Password

  State 取得目前連接的狀態

  Open() 打開

  Close() 關閉
  5.3 操作數據庫

  通過一個Command對象,我們才可以對數據庫進行操作

Dim myConnection As SQLConnection = New SQLConnection("server=localhost;uid=sa;
pwd=;database=pubs")
Dim myCommand As SQLCommand = New SQLCommand("select * from Authors", myConnection)
myConnection.Open()
Dim dr As New SQLDataReader
myCommand.Execute(dr)

...

myConnection.Close()

或者 這樣做
Dim myConnection As New SQLConnection("server=localhost;uid=sa;pwd=;database=pubs")
Dim mycommand As New SQLCommand( _
"UPDATE Authors SET phone='(800) 555-5555' WHERE au_id = '123-45-6789'", _
myConnection)
myCommand.ActiveConnection.Open()
myCommand.ExecuteNonQuery()
myCommand.ActiveConnection.Close()


  這些都是SQLCommand的標準用法,下面列出了Command的所有屬性和相關方法。

  ActiveConnection 取得或設置聯結Connections

  CommandText 執行的SQL語句或儲存過程(StoredProcedure)名

  CommandTimeout 超時

  CommandType Command操作的類型(StoredProcedure,Text,TableDirect)三種,默認Text

  Parameters 操作儲存過程時使用

  Execute() 執行SQL語句或儲存過程

  ExecuteNonQuery() 同上,但無返回,或者說,只返回記錄的數量

  注意: 和ASP一樣,在運行完以后一定要注意關閉Connection,否則會很耗服務器資源的。

  5.4 數據的顯示

  在這節的講解前,我們先建立一個數據庫,名字叫 aspnet 然后里面有一張表user 結構如下:

uidusernameEmail
1 User1Mail1
2 User2Mail2
3 User3 Mail3

  SQL 語句 Select * From User

  數據庫語句 server=localhost;uid=sa;pwd=;database=aspnet

  5.4.1 用 DataReader 方法顯示數據

  有兩種方法可以顯示數據 DataReader方法,和DataSet方法,而DataReader只能儲存查詢數據,我們先講用DataReader方法顯示

<script language="VB" runat="server">
 Sub Page_Load(Src As Object, E As EventArgs)
  Dim MyConnection As SQLConnection =
     New SQLConnection("server=localhost;uid=sa;
               pwd=;database=aspnet")
  Dim MyCommand As SQLCommand =
     New SQLCommand("select * from User", MyConnection)
  MyConnection.Open()
  Dim DR As SQLDataReader
  MyCommand.Execute(DR)
  MyDataGrid.DataSource = DR
  MyDataGrid.DataBind()
  MyConnection.Close()
 End Sub
</script>
<ASP:DataGrid id="MyDataGrid" runat="server"
   Width="700"
   BackColor="#ccccff"
   BorderColor="black"
   ShowFooter="false"
   CellPadding=3
   CellSpacing="0"
   Font-Name="Verdana"
   Font-Size="8pt"
   HeaderStyle-BackColor="#aaaadd"
/>

  對于顯示的控制,大家可以復習一下前一講,數據的綁定,其實多聯系也是一種很好的方法。

  在定制顯示中,還有一種比較使用的方法,而不用綁定

Dim DR As SQLDataReader

  DR["字段名"]的方法也可以取到數據

  5.4.2 用 DataSet 方法顯示數據

  用DataSet記錄的數據其實就是一個表,而對表的操作,只是對DataSet的操作,并沒有改變數據庫,而要到DataSet更新的時候,才完整的寫入數據庫,這個往往是新手容易忽視的地方。

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

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

 Sub Page_Load(Src As Object, E As EventArgs)

  Dim DS As DataSet
  Dim MyConnection As SQLConnection
  Dim MyCommand As SQLDataSetCommand
  
  MyConnection = New
   SQLConnection("server=localhost;uid=sa;pwd=;database=aspnet")
  MyCommand =
   New SQLDataSetCommand("select * from User",MyConnection)

  DS = new DataSet()
   ~~~初始化DataSet()
  MyCommand.FillDataSet(ds, "User")
   ~~~FillDataSet顧名思義把整個查詢內容儲存進DataSet中
  MyDataGrid.DataSource=ds.Tables("User").DefaultView
  MyDataGrid.DataBind()
   ~~~綁定數據
 End Sub
</script>
<body>

 <h3><font face="Verdana">
  Simple Select to a DataGrid Control
</font></h3>

<ASP:DataGrid id="MyDataGrid" runat="server"
  Width="700"
  BackColor="#ccccff"
  BorderColor="black"
  ShowFooter="false"
  CellPadding=3
  CellSpacing="0"
  Font-Name="Verdana"
  Font-Size="8pt"
  HeaderStyle-BackColor="#aaaadd"
  MaintainState="false"
/>

</body>
</html>
  5.5 數據的添加,修改,和刪除

  其實他們是在就是簡單的不要再簡單的東西。

  添加:

DataRow dr=SQLDataSet.Tables["User"].NewRow();
dr["id"] = "4";
dr["username"] = "user4";
dr["Email"] = "mail4";
SQLDataSet.Tables.Rows.Add(dr);
修改:
SQLDataSet.Tables["user"].Rows[3]["username"]= "user5"
刪除:
SQLDataSet.Tables["user"].Rows[3].Delete()
修改完之后,必須更新數據庫
SQLCommand.Update(SQLDataSet, "user")

  5.6 關于顯示中的分頁問題

  這個問題,一再在論壇中給眾人提出過,曾經是ASP中,一個比較難解決的問題,不過在ASP.net中,只不過是DataGrid的一個屬性而已。

  AllowPaging="True" 是否支持分頁

  PageSize="10" 每頁顯示多少

  PagerStyle-HorizontalAlign="Left" 分頁顯示的定位

  完整的例子:

<asp:DataGrid id="dataGrid1" runat="server"
  BorderColor="black"
  BorderWidth="1"
  GridLines="Both"
  CellPadding="3"
  CellSpacing="0"
  HeaderStyle-BackColor="#aaaadd"
  AllowPaging="True"
  PageSize="10"
  PagerStyle-HorizontalAlign="Left"/>




主站蜘蛛池模板: 一二三四视频中文字幕在线看 | 亚州人成网在线播放 | 伊人网中文字幕 | 欧美一区二区三区播放 | 在线视频 二区 | 中文字幕乱视频 | 日本视频免费播放 | 香港三日本三级人妇三级99 | 天天射色综合 | 亚洲成a人片在线观看中文 亚洲成a人片在线观看精品 | 日韩毛片免费视频一级特黄 | 四虎在线观看免费永久 | 四虎影视库国产精品一区 | 在线视频福利 | 一区二区三区福利视频 | 日韩高清免费观看 | 日韩精品成人免费观看 | 欧美一级片免费 | 亚洲第五页 | 手机看片福利盒子久久青 | 午夜不卡在线 | 影音先锋色69成人资源 | 人妖女天堂视频在线96 | 在线国产资源 | 日韩免费无砖专区2020狼 | 日本成人高清视频 | 欧美一区中文字幕 | 亚洲午夜精品久久久久久抢 | 色综合中文字幕色综合激情 | 亚洲白嫩在线观看 | 日本高清www色 | 羞羞色在线 | 欧美在线高清视频 | 午夜激情福利网 | 色噜噜狠狠色综合日日 | 日本五级床片全部硬硬 | 亚洲综合资源 | 日本黄 色 成 年 人免费观看 | 天堂资源网 | 日噜噜| 日韩手机在线观看 |