zoukankan      html  css  js  c++  java
  • ASP.NET连接SQL、Access、Excel数据库(一)——什么是ADO.NET

     源代码:13033480群共享

    一、什么是ADO.NET

    ADO.NET 是一组类,这些类由.NET Framework提供,所以又叫.NET Framework 数据提供程序。安装.NET Framework时会安装这些类, 位于 System.Data.dll 中。

     .NET Framework数据提供程序(ADO.NET)主要包括SQL Server .NET Framework 数据提供程序、OLE DB .NET Framework 数据提供程序、

    ODBC .NET Framework 数据提供程序和Oracle .NET Framework 数据提供程序

    .NET Framework数据提供程序

    说明

    SQL Server .NET Framework 数据提供程序

    命名空间:System.Data.SqlClient

    主要用于访问SQL数据库。

    OLE DB .NET Framework 数据提供程序

    命名空间: System.Data.OleDb

    通过 COM Interop 使用本机 OLE DB 启用数据访问,驱动程序有SQLOLEDB、MSDAORA和Microsoft.Jet.OLEDB.4.0

    主要用于访问Access数据库,也可以用来访问SQL数据库。

    ODBC .NET Framework 数据提供程序

    命名空间:System.Data.Odbc

    使用本机 ODBC 驱动程序管理器 (DM) 启用数据访问,驱动程序有SQL Server、Microsoft ODBC for Oracle和Microsoft Access 驱动程序 (*.mdb)

    主要用于访问Excel数据库。

    Oracle .NET Framework 数据提供程序

    命名空间:System.Data.OracleClient

    主要用于访问Oracle数据库

     

    .NET Framework 数据提供程序主要有四个核心对象。

    对象

    说明

    Connection

    建立与特定数据源的连接。所有 Connection 对象的基类均为DbConnection 类。

    Command

    对数据源执行命令。公开 Parameters,并且可以通过 Connection 在 Transaction 的范围内执行。所有 Command 对象的基类均为DbCommand 类。

    DataReader

    从数据源中读取只进且只读的数据流。所有 DataReader 对象的基类均为DbDataReader 类。

    DataAdapter

    用数据源填充 DataSet 并解析更新。所有 DataAdapter 对象的基类均为DbDataAdapter 类。

     

    除上表列出的核心类之外,.NET Framework 数据提供程序还包含下表列出的类。

    对象

    说明

    Transaction

    使您能够在数据源的事务中登记命令。所有 Transaction 对象的基类均为DbTransaction 类。

    CommandBuilder

    帮助器对象将自动生成 DataAdapter 的命令属性或将从存储过程派生参数信息并填充 Command 对象的 Parameters 集合。所有 CommandBuilder 对象的基类均为DbCommandBuilder 类。

    ConnectionStringBuilder

    帮助器对象为创建和管理 Connection 对象所使用的连接字符串的内容提供了一种简单的方法。所有 ConnectionStringBuilder 对象的基类均为DbConnectionStringBuilder 类。

    参数

    定义命令和存储过程的输入、输出和返回值参数。所有 Parameter 对象的基类均为DbParameter 类。

    Exception

    在数据源中遇到错误时返回。对于在客户端遇到的错误,.NET Framework 数据提供程序会引发 .NET Framework 异常。所有 Exception 对象的基类均为DbException 类。

    Error

    公开数据源返回的警告或错误中的信息。

    ClientPermission

    为 .NET Framework 数据提供程序代码访问安全属性而提供。所有 ClientPermission 对象的基类均为DBDataPermission 类。

     

    二、山寨一个ADO.NET

    1、添加一个类库Data

    2、设置类库的程序集名称NetShop.Data

    3、类库Data中添加类Data.cs,代码如下:

     

    namespace NetShop.Data

    {

        namespace SqlClient

        {

            public class SqlConnection

            {

                public string Information = "NetShop.Data.SqlClient.SqlConnection";

     

            }

            public class SqlCommand

            {

                public string Information = "NetShop.Data.SqlClient.SqlCommand";

            }

            public class SqlDataReader

            {

                public string Information = "NetShop.Data.SqlClient.SqlDataReader";

            }

            public class SqlDataAdapter

            {

                public string Information = "NetShop.Data.SqlClient.SqlDataAdapter";

            }

        }

     

        namespace OleDb

        {

            public class OleDbConnection

            {

                public string Information = "NetShop.Data.OleDb.OleDbConnection";

     

            }

            public class OleDbCommand

            {

                public string Information = "NetShop.Data.OleDb.OleDbCommand";

            }

            public class OleDbDataReader

            {

                public string Information = "NetShop.Data.OleDb.OleDbDataReader";

            }

            public class OleDbDataAdapter

            {

                public string Information = "NetShop.Data.OleDb.OleDbDataAdapter";

            }

        }

        namespace Odbc

        {

            public class OdbcConnection

            {

                public string Information = "NetShop.Data.Odbc.OdbcConnection";

     

            }

            public class OdbcCommand

            {

                public string Information = "NetShop.Data.Odbc.OdbcCommand";

            }

            public class OdbcDataReader

            {

                public string Information = "NetShop.Data.Odbc.OdbcDataReader";

            }

            public class OdbcDataAdapter

            {

                public string Information = "NetShop.Data.Odbc.OdbcDataAdapter";

            }

        }

        namespace Oracle

        {

            public class OracleConnection

            {

                public string Information = "NetShop.Data.Oracle.OracleConnection";

     

            }

            public class OracleCommand

            {

                public string Information = "NetShop.Data.Oracle.OracleCommand";

            }

            public class OracleDataReader

            {

                public string Information = "NetShop.Data.Oracle.OracleDataReader";

            }

            public class OracleDataAdapter

            {

                public string Information = "NetShop.Data.Oracle.OracleDataAdapter";

            }

        }

    }

     

    4、网站Web添加引用→项目→NetShop.Data

    5Default.aspx.cs中添加如下代码:

    using System;

     

    using NetShop.Data.SqlClient;

    using NetShop.Data.OleDb;

    using NetShop.Data.Odbc;

    using NetShop.Data.Oracle;

     

    public partialclass _Default : System.Web.UI.Page

    {

        protected void Page_Load(object sender, EventArgs e)

        {

            Response.Write("SQLServer.NET数据提供程序核心类有4个,分别是:</br>");

            SQLServer();

           

            Response.Write("OleDb.NET数据提供程序核心类有4个,分别是:</br>");

            OleDb();

           

            Response.Write("Odbc.NET数据提供程序核心类有4个,分别是:</br>");

            Odbc();

           

            Response.Write("Oracle.NET数据提供程序核心类有4个,分别是:</br>");

            Oracle();

        }

        void SQLServer()

        {

            SqlConnection conn = new SqlConnection();

            SqlCommand cmd = new SqlCommand();

            SqlDataReader rdr = new SqlDataReader();

            SqlDataAdapter da = new SqlDataAdapter();

     

            Response.Write(conn.Information + "</br>");

            Response.Write(cmd.Information + "</br>");

            Response.Write(rdr.Information + "</br>");

            Response.Write(da.Information + "</br></br>");

        }

        void OleDb()

        {

            OleDbConnection conn = new OleDbConnection();

            OleDbCommand cmd = new OleDbCommand();

            OleDbDataReader rdr = new OleDbDataReader();

            OleDbDataAdapter da = new OleDbDataAdapter();

     

            Response.Write(conn.Information + "</br>");

            Response.Write(cmd.Information + "</br>");

            Response.Write(rdr.Information + "</br>");

            Response.Write(da.Information + "</br></br>");

        }

        void Odbc()

        {

            OdbcConnection conn = new OdbcConnection();

            OdbcCommand cmd = new OdbcCommand();

            OdbcDataReader rdr = new OdbcDataReader();

            OdbcDataAdapter da = new OdbcDataAdapter();

     

            Response.Write(conn.Information + "</br>");

            Response.Write(cmd.Information + "</br>");

            Response.Write(rdr.Information + "</br>");

            Response.Write(da.Information + "</br></br>");

        }

     

        void Oracle()

        {

            OracleConnection conn = new OracleConnection();

            OracleCommand cmd = new OracleCommand();

            OracleDataReader rdr = new OracleDataReader();

            OracleDataAdapter da = new OracleDataAdapter();

     

            Response.Write(conn.Information + "</br>");

            Response.Write(cmd.Information + "</br>");

            Response.Write(rdr.Information + "</br>");

            Response.Write(da.Information + "</br></br>");

        }

    }

    6、右击Default.aspx,在浏览器中查看运行结果。

    【技术要点】

    1、为了不与系统冲突,命名空间使用了前缀NetShop而不是System,这个不应该影响说明问题吧。

    2、类Data.cs中没有使用任何其它的类,不需要引用任何程序集,也不需要导入命名空间。

    参考网址:http://msdn.microsoft.com/zh-cn/library/a6cd7c08(v=vs.80).aspx
  • 相关阅读:
    ul 和 ol 标签的相关设置
    程序员送给大学生弟弟的话
    react-dom.js 源码
    什么是 JSX
    The 2019 ICPC China Nanchang National Invitational and International Silk-Road Programming Contest C. Xyjj’s sequence(动态规划+欧拉降幂)
    Codeforces Round #584 E2. Rotate Columns (hard version)(状压DP)
    P3343 [ZJOI2015]地震后的幻想乡(概率dp+状压dp)
    Educational Codeforces Round 73 (Rated for Div. 2) D. Make The Fence Great Again
    红蓝字符串 牛客网
    Wannafly挑战赛6 锁
  • 原文地址:https://www.cnblogs.com/java20130723/p/3211652.html
Copyright © 2011-2022 走看看