999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于SQL Server數據庫的ADO.NET數據訪問技術

2008-04-12 00:00:00
現代電子技術 2008年18期

摘 要:ADO.NET是一組向.NET程序員公開數據訪問服務的類,是一個具有互操作性且伸縮性強的數據訪問體系結構。以VB.NET為編程語言,系統、實例化地介紹ADO.NET對SQL Server數據庫的連接方法,并對常用數據訪問技術(如添加、刪除、更新等)進行歸納介紹,為初學者提供參考。

關鍵詞:ADO.NET;SQL Server;數據訪問技術;VB.NET

中圖分類號:TP311 文獻標識碼:B 文章編號:1004373X(2008)1807404

ADO.NET Data Access Technology Based on SQL Server

YE Qian1,LIU Yi2

(1.Dean′s Office,Yan′an University,Yan′an,716000,China;2.Network Center,Yan′an University,Yan′an,716000,China)

Abstract:ADO.NET is a class which is used to open Data SQL Sever to.NET programmer,and it is a data access architecture which has interoperability and fine scalability.In the paper,VB.NET as programming language,the connect technique that ADO.NET to SQL Server database is introduced systematically.At the same time,some simple data access techniques (for example,adding,deleting,updating and etc.) are introduced to offer help to the beginner.

Keywords:ADO.NET;SQL Server;database SQL technique;VB.NET

在基于Web的編程時代,ADO.NET數據訪問體系結構以其互操作性好、可伸縮性強的優勢,成為一種重要的數據訪問模型,而且作為.NET Framework中不可缺少的一部分,它為創建分布式數據共享應用程序提供了一組豐富的組件,提供對關系數據庫、XML和應用程序數據的訪問。雖然.NET開發平臺可利用Web窗體控件間接實現,但作為程序員往往希望直接通過編寫代碼實現,然而目前系統性、實例化的報道此方面的文章不是很多,所以系統性、實例化地介紹ADO.NET數據訪問技術很有必要。下面詳細介紹ADO.NET數據訪問技術。

1 ADO.NET數據訪問技術要點

ADO.NET主要由2個核心組件組成: .NET數據提供程序(Data Providers)和數據集(DataSet)。前者實現數據操作和對數據的快速、只讀訪問;后者代表實際的數據。這里主要介紹Data Providers,它包含Connection,Command,DataReader,DataAdapter對象,.NET程序員使用這些元素實現對實際數據的操作。Connection對象用來實現和數據源的連接,是數據訪問者和數據源之間的對話通道。Command對象包含提交給實際數據庫的信息,例如一個查詢并返回數據的命令、一個修改數據的命令、一個調用數據庫存儲過程的命令及其參數等。DataReader提供一個簡單而輕量的方法,允許程序在數據記錄間進行只讀的、單向(向前)的數據訪問。DataReader對象提供的數據訪問接口沒有DataSet對象那樣功能強大,但性能更高,因此在某些場合下(例如一個簡單的、不要求回傳更新數據的查詢)往往更能符合應用程序的需要。DataAdapter對象充當DataSet對象和數據源之間的橋梁,他使用Command對象、在Connection對象的連接輔助下訪問數據源,將Command對象中的命令執行結果傳遞給DataSet對象,并將DataSet對象中的數據的改動回饋給數據源。DataAdapter對象對DataSet對象隱藏了實際數據操作的細節,從而使得DataSet的數據源無關成為現實。

.NET自帶2個Data Providers:

(1)SQL Server.NET Data Providers。用于連接到Microsoft SQL Server 7.0或者更高版本的數據庫。它優化了對SQL Server的訪問,并利用SQL Server內置的數據轉換協議直接與SQL Server通訊;

(2) OLE DB.NET Data Providers。這是一個用于管理OLE DB數據源的數據提供程序。它的效率低于SQL Server.NET數據提供程序,因為在與數據庫通信時,它需要通過OLE DB層進行通信。

相對上面提到的Connection,Command,DataReader,DataAdapter對象都有2個派生類版本,它們分別位于System.Data.SqlClient命名空間和System.Data.OleDb命名空間中,具體名稱如下:

Connection:SqlConnection和OleDbConnection

Command:SqlConnection和OleDbCommand

DataReader:SqlDataReader和OleDbDataReader

DataAdapter:SqlDataAdapter和OleDbDataAdapter

2 ADO.NET對SQL Server數據庫的訪問技術

隨著網絡世界的盛行,網絡上的圖片也大量盛行,許多人的電腦里存儲了很多好的圖片,而且大家也想把自己的圖片展示給別人看,炫耀自己美麗的圖片,但圖片的管理出現了麻煩。由此開發了《圖片管理系統》通過后臺管理實現圖片的分類管理、圖片的上傳、用戶的管理、圖片的瀏覽等功能。

下面以所開發的《圖片管理系統》為例,具體介紹ADO.NET對SQL Server數據庫的訪問技術的實現過程。

2.1 數據庫設計

訪問的數據庫文件為pic,所含表有admin,fenlei,myimg,其表結構設計如圖1~圖3所示。

2.2 引用名稱空間

由于在訪問數據時需要用到相關的數據供應器類型,因此在進行數據訪問前首先要在.aspx.vb(事件代碼編寫處)的開始處填寫如下代碼,以引用名稱空間。名稱大多都是自行添加的。

<%@ Imports System.Data.OleDb %>

包含SQL Server.NET數據供應器類型。

2.3 連接數據庫

先敘述2種連接的創建和打開方法示例。

(1) 對于SQL Server.NET Data Provider

Public void SqlConnection()

{ String connectionString=″Provider=SQLOLEDB;DataSource=(local);″+″Initial Catalog=databasename;uid=username;pwd=password;″+″Integrated Secrity=SSPI;″

try

{

SqlConnection myConnection=new

SqlConnection(connectionString);

//操作內容

}

catch(SqlException e)

{

//異常處理操作內容

}

}

(2) 對于OLE DB.NET Data Provider

public void OleConnection(String connectionString)

{

if(connectionString==\"\")

{

//操作內容

}

try

{

OleDbConnection myConnnection=new OleDbConnection();

myConnection.ConnectionString=connectionString;

//操作內容

catch(OleDbException e)

{

//異常處理操作內容

}

//操作內容

(3) 在該系統設計過程中引入一個類來連接數據庫

Public Class conn

Inherits System.Web.UI.Page

Public conn As OleDbConnection = New OleDbConnection(\"Provider=SQLOLEDB;Data Source=(local);Initial Catalog=pic;User ID=sa;Pwd=sa\")

End Class

(4)通過上面定義的類實現系統管理員登陸的數據庫連接

Public Sub doit(ByVal sender As System.Object,ByVal e As System.EventArgs)

If IsValid Then

Dim name,userpassword As String

name = username.Text

userpassword = FormsAuthentication.Hash

PasswordForStoringInConfigFile(pass.Text,

\"md5\")

Dim obj As New pic.conn

Dim mycommand As OleDbCommand

Dim rs As OleDbDataReader

Dim sql As String = \"select * from [admin] where username=′\" name \"′ and password=′\" userpassword \"′\"

obj.conn.Open()

mycommand = New OleDbCommand(sql,obj.conn)

rs = mycommand.ExecuteReader

′從數據庫讀取數據,并進行比較

If rs.Read() Then

Session.Add(\"username\",name)

Session.Add(\"userpassword\",userpassword)

Session.Add(\"type\",rs(\"type\"))

Response.Redirect(\"admin.aspx\")

rs.Close()

Else

Response.Write(\"\" + \"\\\\")

Response.Redirect(\"index.aspx\")

Response.End()

End If

obj.conn.Close()

End If

End Sub

注釋:SelectCommand用來取得數據源中的記錄。

2.4 訪問和操作數據庫

2.4.1 數據庫的操作

通過Connecton對象連接到數據庫之后,就可以使用Command對象對數據進行操作,如數據添加、刪除、修改等。一個Command(命令)可以用典型的SQL語句表達,包括執行選擇查詢(Select Query)返回記錄集,執行行動查詢(Action Query)更新(增加、編輯或刪除)數據庫的記錄,或者創建并修改數據庫的表結構。

Command對象也有2種類型:SqlCommand和OleCommand,分別對應與2種數據源類型。可以通過SqlCommand對象直接操作SQL Server數據庫,通過OleDbCommand操作支持ADO Managed Provider的數據源。

在創建Command對象后,可以使用他的一系列Execute方法來完成命令的執行。

(1) 返回數據流,可以使用ExecuteReader方法來返回一個DataReader對象。

(2) 返回一個XmlReader對象。對于SQL數據源,如果將CommandText屬性設置為合法的帶有FOR XML子句的TSQL語句,可以使用SqlCommand對象的ExecuteXmlReader方法來返回一個XmlReader對象。

(3) 返回某個值,調用ExecuteScalar方法。

(4) 當不希望返回值時,調用ExecuteNonQuery方法。

2.4.2 數據操作的操作代碼

下面是實現數據的添加、更新、刪除操作的代碼。

(1) 數據“添加”操作的代碼

Public Sub adduser(ByVal sender As System.Object,ByVal e As System.EventArgs)

If IsValid Then

Dim ad_name As String = username.Text

Dim ad_password As String = FormsAuthentication.HashPasswordForStoringInConfigFile(password.Text,

\"md5\")

Dim grade As Int32 = dnegji.Value

Dim sql As String

obj.conn.Open()

sql = \"select id from [admin] where username=′\" ad_name \"′\"

mycommand = New OleDbCommand(sql,obj.conn)

rs = mycommand.ExecuteReader

If rs.Read() Then

pageerr.InnerHtml = \"不能添加相同的用戶名\"

Exit Sub

End If

rs.Close()

Dim sql1 = \"insert into [admin](username,password,type) values(′\" ad_name \"′,′\" ad_password \"′,\" grade \")\"

′Response.Write(sql)

′Response.End()

mycommand = New OleDbCommand(sql1,obj.conn)

mycommand.ExecuteNonQuery()

obj.conn.Close()

pageerr.InnerHtml = \"添加用戶成功\"

main.Visible = False

End If

End Sub

注釋:InsertCommand用來添加記錄到數據庫。

(2) 數據“刪除”操作的代碼

Try

Dim id2 As Int32 = Request(\"id\")

sql = \"delete * from admin where id=\" id2

mycommand = New OleDbCommand(sql,obj.conn)

mycommand.ExecuteNonQuery()

pageerr.InnerHtml = \"刪除成功\"

main.Visible = False

Catch s As Exception

pageerr.InnerHtml = \"沒有這個用戶\"

main.Visible = False

Exit Sub

End Try

注釋:DeleteCommand用來刪除數據源中的記錄。

(3) 數據“更新”操作的代碼

Public Sub edituser(ByVal sender As System.Object,ByVal e As System.EventArgs)

If IsValid Then

Dim username As String = Seession(\"username\")

Dim e_password As String = FormsAuthentication.HashPasswordForStoringInConfigFile(password.Text,\"md5\")

Dim sql As String = \"update [admin] set password=′\" e_password \"′ where username=′\" username \"′\"

obj.conn.Open()

mycommand = New OleDbCommand(sql,obj.conn)

mycommand.ExecuteNonQuery()

obj.conn.Close()

pageerr.InnerHtml = \"修改密碼成功\"

main.Visible = False

End If

End Sub

注釋:UpdateCommand用來更新數據源中的記錄。

3 結 語

至此介紹ADO.NET對SQL Server數據庫的基本訪問技術。可以看出ADO.NET代表了最新版本的ADO技術,作為一個用于創建分布式和數據共享程序的基本各種標準的編程模型,只有掌握ADO.NET數據訪問技術,才能開發出功能強大、生命力持久的Web應用程序。

參 考 文 獻

[1]李岱,劉至寶,陳斕.ASP.NET項目開發實踐[M].北京:中國鐵道出版社,2005.

[2]趙增敏,朱粹丹,趙朱曦.ASP.NET程序設計\\.西安:西安交通大學出版社,2006.

[3]陳峰棋.深入淺出ASP.NET程序設計\\.北京:中國水利水電出版社,2004.

[4]陳語林.Visual Basic.NET程序設計教程\\.北京:中國水利水電出版社,2005.

[5]張增良.ASP.NET程序設計教程\\.西安:西安交通大學出版社,2006.

[6]\\Chris Goode John Kauffman.ASP.NET 1.0入門經典\\.康博,譯.北京:清華大學出版社,2002.

[7]曹祖圣.Visual Basic.NET學習范本\\.北京:科學出版社,2003.

[8]楊宗志.ASP.NET 入門與實作\\.北京:科學出版社,

2003.

[9]\\Kevin Hoffman.ASP.NET ECommerce Programming\\.北京:清華大學出版社,2003.

[10]\\ Glenn Johnson.ADO.NET 2.0高級編程\\.北京:清華大學出版社,2006.

作者簡介 葉 倩 女,1982年出生,2004年畢業于西安空軍工程大學,西北大學在職碩士研究生。主要研究方向為軟件工程、計算機應用。

劉 翼 男,1982年出生,助教,2003年畢業于延安大學。主要研究方向為網絡應用、軟件工程、計算機應用等。

主站蜘蛛池模板: 精品视频一区在线观看| 日韩高清在线观看不卡一区二区| 在线看片中文字幕| 国产午夜精品一区二区三| 国产欧美另类| 欧美怡红院视频一区二区三区| 国产精品对白刺激| 丁香六月综合网| 国产噜噜噜视频在线观看| 91精品在线视频观看| 四虎国产在线观看| 国产精品自在在线午夜| 日韩福利在线观看| 久久国产精品77777| 国产精品久久久久久久久kt| 自偷自拍三级全三级视频| 99精品伊人久久久大香线蕉| 亚洲另类国产欧美一区二区| 国产电话自拍伊人| 欧美日韩精品在线播放| 久久九九热视频| 一级毛片免费不卡在线视频| 91精品国产情侣高潮露脸| 国产综合网站| 999国产精品| 亚洲男人天堂网址| 手机精品福利在线观看| 熟女视频91| 无码中文字幕乱码免费2| 国内精品九九久久久精品| 三级毛片在线播放| 欧洲一区二区三区无码| 麻豆国产在线观看一区二区| 在线播放精品一区二区啪视频| 狠狠操夜夜爽| 久久99这里精品8国产| 青青极品在线| 91伊人国产| 亚洲国产无码有码| 欧美午夜理伦三级在线观看| 国产精品伦视频观看免费| 国产流白浆视频| 国产成人亚洲毛片| 国产污视频在线观看| 99精品视频九九精品| 亚洲成人高清在线观看| 亚洲AV永久无码精品古装片| 久久一本日韩精品中文字幕屁孩| 欧美中文字幕无线码视频| 国产欧美日韩在线一区| 高清色本在线www| 亚洲欧美一区二区三区图片 | 不卡午夜视频| 国产精品深爱在线| 亚洲成人动漫在线| 综合人妻久久一区二区精品 | 成人免费网站在线观看| 国产sm重味一区二区三区| 久久久久青草大香线综合精品 | 尤物亚洲最大AV无码网站| 免费一级大毛片a一观看不卡| 欧美特黄一级大黄录像| 国产区精品高清在线观看| 欧美日韩午夜视频在线观看| 成人综合久久综合| 日本人妻丰满熟妇区| 亚洲va精品中文字幕| 香蕉国产精品视频| 青青草91视频| 欧美精品亚洲精品日韩专区va| 制服丝袜一区| 精品久久久无码专区中文字幕| 亚洲国产精品久久久久秋霞影院| 亚洲一道AV无码午夜福利| 国产女人在线观看| 欧美日韩国产在线人| 午夜精品久久久久久久99热下载| 精品一区二区三区波多野结衣 | 九九九国产| 狠狠色丁香婷婷综合| 国产在线精品99一区不卡| 福利片91|