亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于SQL Server數(shù)據(jù)庫的ADO.NET數(shù)據(jù)訪問技術(shù)

        2008-04-12 00:00:00
        現(xiàn)代電子技術(shù) 2008年18期

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

        關(guān)鍵詞:ADO.NET;SQL Server;數(shù)據(jù)訪問技術(shù);VB.NET

        中圖分類號:TP311 文獻(xiàn)標(biāo)識碼: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數(shù)據(jù)訪問體系結(jié)構(gòu)以其互操作性好、可伸縮性強(qiáng)的優(yōu)勢,成為一種重要的數(shù)據(jù)訪問模型,而且作為.NET Framework中不可缺少的一部分,它為創(chuàng)建分布式數(shù)據(jù)共享應(yīng)用程序提供了一組豐富的組件,提供對關(guān)系數(shù)據(jù)庫、XML和應(yīng)用程序數(shù)據(jù)的訪問。雖然.NET開發(fā)平臺可利用Web窗體控件間接實現(xiàn),但作為程序員往往希望直接通過編寫代碼實現(xiàn),然而目前系統(tǒng)性、實例化的報道此方面的文章不是很多,所以系統(tǒng)性、實例化地介紹ADO.NET數(shù)據(jù)訪問技術(shù)很有必要。下面詳細(xì)介紹ADO.NET數(shù)據(jù)訪問技術(shù)。

        1 ADO.NET數(shù)據(jù)訪問技術(shù)要點(diǎn)

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

        .NET自帶2個Data Providers:

        (1)SQL Server.NET Data Providers。用于連接到Microsoft SQL Server 7.0或者更高版本的數(shù)據(jù)庫。它優(yōu)化了對SQL Server的訪問,并利用SQL Server內(nèi)置的數(shù)據(jù)轉(zhuǎn)換協(xié)議直接與SQL Server通訊;

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

        相對上面提到的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數(shù)據(jù)庫的訪問技術(shù)

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

        下面以所開發(fā)的《圖片管理系統(tǒng)》為例,具體介紹ADO.NET對SQL Server數(shù)據(jù)庫的訪問技術(shù)的實現(xiàn)過程。

        2.1 數(shù)據(jù)庫設(shè)計

        訪問的數(shù)據(jù)庫文件為pic,所含表有admin,fenlei,myimg,其表結(jié)構(gòu)設(shè)計如圖1~圖3所示。

        2.2 引用名稱空間

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

        <%@ Imports System.Data.OleDb %>

        包含SQL Server.NET數(shù)據(jù)供應(yīng)器類型。

        2.3 連接數(shù)據(jù)庫

        先敘述2種連接的創(chuàng)建和打開方法示例。

        (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);

        //操作內(nèi)容

        }

        catch(SqlException e)

        {

        //異常處理操作內(nèi)容

        }

        }

        (2) 對于OLE DB.NET Data Provider

        public void OleConnection(String connectionString)

        {

        if(connectionString==\"\")

        {

        //操作內(nèi)容

        }

        try

        {

        OleDbConnection myConnnection=new OleDbConnection();

        myConnection.ConnectionString=connectionString;

        //操作內(nèi)容

        catch(OleDbException e)

        {

        //異常處理操作內(nèi)容

        }

        //操作內(nèi)容

        (3) 在該系統(tǒng)設(shè)計過程中引入一個類來連接數(shù)據(jù)庫

        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)通過上面定義的類實現(xiàn)系統(tǒng)管理員登陸的數(shù)據(jù)庫連接

        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

        ′從數(shù)據(jù)庫讀取數(shù)據(jù),并進(jìn)行比較

        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用來取得數(shù)據(jù)源中的記錄。

        2.4 訪問和操作數(shù)據(jù)庫

        2.4.1 數(shù)據(jù)庫的操作

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

        Command對象也有2種類型:SqlCommand和OleCommand,分別對應(yīng)與2種數(shù)據(jù)源類型??梢酝ㄟ^SqlCommand對象直接操作SQL Server數(shù)據(jù)庫,通過OleDbCommand操作支持ADO Managed Provider的數(shù)據(jù)源。

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

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

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

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

        (4) 當(dāng)不希望返回值時,調(diào)用ExecuteNonQuery方法。

        2.4.2 數(shù)據(jù)操作的操作代碼

        下面是實現(xiàn)數(shù)據(jù)的添加、更新、刪除操作的代碼。

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

        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用來添加記錄到數(shù)據(jù)庫。

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

        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用來刪除數(shù)據(jù)源中的記錄。

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

        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用來更新數(shù)據(jù)源中的記錄。

        3 結(jié) 語

        至此介紹ADO.NET對SQL Server數(shù)據(jù)庫的基本訪問技術(shù)??梢钥闯鯝DO.NET代表了最新版本的ADO技術(shù),作為一個用于創(chuàng)建分布式和數(shù)據(jù)共享程序的基本各種標(biāo)準(zhǔn)的編程模型,只有掌握ADO.NET數(shù)據(jù)訪問技術(shù),才能開發(fā)出功能強(qiáng)大、生命力持久的Web應(yīng)用程序。

        參 考 文 獻(xiàn)

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

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

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

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

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

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

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

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

        2003.

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

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

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

        劉 翼 男,1982年出生,助教,2003年畢業(yè)于延安大學(xué)。主要研究方向為網(wǎng)絡(luò)應(yīng)用、軟件工程、計算機(jī)應(yīng)用等。

        四虎成人精品国产永久免费| 麻豆果冻传媒在线观看| 蜜臀aⅴ国产精品久久久国产老师 国产精品久久婷婷六月丁香 | 一本大道无码人妻精品专区| av无码精品一区二区三区四区| mm在线精品视频| 亚洲人成精品久久熟女| 亚洲精品成人久久av| 国产亚洲精品色婷婷97久久久| 人妻aⅴ中文字幕| 91亚洲无码在线观看| 俺来也三区四区高清视频在线观看| 极品尤物人妻堕落沉沦| 亚洲av最新在线网址| 91亚洲国产成人aⅴ毛片大全| av免费一区在线播放| 日本精品视频免费观看| 国产顶级熟妇高潮xxxxx| 最新亚洲人AV日韩一区二区| 国产色婷亚洲99精品av网站 | 亚洲av成人精品日韩在线播放| 乌克兰少妇xxxx做受6| 中文字幕第一页在线无码一区二区| 曰日本一级二级三级人人| 国产精品亚洲а∨天堂2021| 国产精品调教| 亚洲av永久综合网站美女| 少妇高潮太爽了在线看| 国产福利一区二区三区在线观看| 亚洲国产成人AⅤ片在线观看| 国产精品亚洲一区二区三区久久| 欧美成人午夜免费影院手机在线看| 精品人妻无码一区二区色欲产成人| 中日无码精品一区二区三区| 91偷拍与自偷拍亚洲精品86| 日本老熟妇乱| 精品国产免费久久久久久| 日本女u久久精品视频| 97se亚洲国产综合自在线观看| 色一情一乱一伦一区二区三欧美 | 国产伦理一区二区久久精品 |