亚洲免费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)用等。

        国产白浆流出一区二区| 国产亚洲精品aaaaaaa片 | 精品人妻中文字幕一区二区三区| 国产精品视频白浆免费视频| 亚洲av无码乱码在线观看牲色| 蜜臀av无码精品人妻色欲| 国产精品每日更新在线观看| 久久免费看视频少妇高潮| 人人妻人人澡人人爽人人精品浪潮| 日日摸天天摸人人看| 国产精品美女久久久久久大全| 亚洲天堂av免费在线 | 日本少妇高潮喷水xxxxxxx| 欧美日韩中文国产一区| 午夜无码片在线观看影院y| 日韩在线不卡一区三区av| 亚洲av成人片在线观看| 国产亚洲视频在线观看网址| AV中文字幕在线视| 中文国产乱码在线人妻一区二区| 成人欧美日韩一区二区三区| 久久香蕉国产线看观看网| av网址不卡免费在线观看| 色婷婷精品久久二区二区蜜臀av| 免费人成网ww555kkk在线| 亚洲色大成在线观看| 亚洲三区av在线播放| 精品国产粉嫩内射白浆内射双马尾 | 精品国产免费久久久久久| 国产一区二区三区再现| 中文字幕免费在线观看动作大片| 伦人伦xxxx国语对白| 少妇特殊按摩高潮惨叫无码| 久久伊人亚洲精品视频| 成人性生交大片免费| 国产主播在线 | 中文| 久久久精品国产老熟女| 天堂国产一区二区三区| 999久久久精品国产消防器材| 日本国主产一区二区三区在线观看 | 亚洲av片在线观看|