广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C#使用ADO.Net连接数据库与DbProviderFactory实现多数据库访问
  • 931
分享到

C#使用ADO.Net连接数据库与DbProviderFactory实现多数据库访问

2024-04-02 19:04:59 931人浏览 泡泡鱼
摘要

一、ADO.net数据库连接字符串 1、OdbcConnection(System.Data.Odbc) (1)sql Sever 标准安全:" Driver={SQL S

一、ADO.net数据库连接字符串

1、OdbcConnection(System.Data.Odbc)

(1)sql Sever

标准安全:" Driver={SQL Server}; Server=Aron1; Database=pubs; Uid=sa; Pwd=asdasd; "

信任的连接:" Driver={SQL Server}; Server=Aron1; Database=pubs; Trusted_Connection=yes; "

(2)SQL Native Client ODBC Driver(>=SQL Server 2005)

标准安全" Driver={SQL Native Client}; Server=Aron1; Database=pubs; UID=sa; PWD=asdasd; "

信任的连接
" Driver={SQL Native Client}; Server=Aron1; Database=pubs; Trusted_Connection=yes; " --Integrated Security=SSPI 等同于Trusted_Connection=yes

(3)oracle:

新版本:"Driver={Microsoft ODBC for Oracle}; Server=OracleServer.world; Uid=Username; Pwd=asdasd; "

旧版本:"Driver={Microsoft ODBC Driver for Oracle}; ConnectString=OracleServer.world; Uid=myUsername; Pwd=myPassWord; "

(4)Access:

标准安全:"Driver={Microsoft Access Driver (*.mdb)}; Dbq=C:\mydatabase.mdb; Uid=Admin; Pwd=; "

2、OleDbConnection(System.Data.OleDb)

(1)SQL Sever

标准安全:" Provider=sqloledb; Data Source=Aron1; Initial Catalog=pubs; User Id=sa; Password=asdasd; "

信任的连接:
" Provider=sqloledb; Data Source=Aron1; Initial Catalog=pubs; Integrated Security=SSPI; " 
(use serverName\instanceName as Data Source to use an specifik SQLServer instance, only SQLServer2000)

(2)SQL Native Client OLE DB Provider(>=SQL Server 2005)

标准安全:" Provider=SQLNCLI; Server=Aron1; Database=pubs; UID=sa; PWD=asdasd; "

信任的连接:
" Provider=SQLNCLI; Server=Aron1; Database=pubs; Trusted_Connection=yes; " --Integrated Security=SSPI 等同于Trusted_Connection=yes

(3)Oracle:

标准安全:
"Provider=msdaora; Data Source=MyOracleDB; User Id=UserName; Password=asdasd; "
This one's from Microsoft, the following are from Oracle

标准安全:"Provider=OraOLEDB.Oracle; Data Source=MyOracleDB; User Id=Username; Password=asdasd; "

信任的连接:"Provider=OraOLEDB.Oracle; Data Source=MyOracleDB; OSAuthent=1; "

(4)Access:

标准安全:

"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=\somepath\mydb.mdb; User Id=admin; Password=; "

3、SqlConnection(Syste.Data.SqlClient) SQL专用

标准安全:

" Data Source=Aron1; Initial Catalog=pubs; User Id=sa; Password=asdasd; " 
- 或者 -" Server=Aron1; Database=pubs; User ID=sa; Password=asdasd; Trusted_Connection=False"

信任的连接:
" Data Source=Aron1; Initial Catalog=pubs; Integrated Security=SSPI; " 
- 或者 -
" Server=Aron1; Database=pubs; Trusted_Connection=True; " –(use serverName\instanceName as Data Source to use an specifik SQLServer instance, 仅仅适用于SQLServer2000)

4、OracleConnection(System.Data.OracleClient\Oracle.ManagedDataAccess.Client) Oracle专用

标准安全:
"Data Source=MyOracleDB; Integrated Security=yes; " --This one works only with Oracle 8i release 3 or later

指定用户名和密码:
"Data Source=MyOracleDB; User Id=username; Password=passwd; Integrated Security=no; "--This one works only with Oracle 8i release 3 or later

指定主机:
"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp) (HOST=192.168.115.33) (PORT=1521)))(CONNECT_DATA=(SERVICE_NAME= testDemo))); User Id=oracle_test; Password=oracle"
其中Oracle数据库服务器IP:192.168.115.33
ServiceName:testDemo
用户名:oracle_test
密码:oracle

二、利用DbProviderFactory创建各种ADO.Net对象

DbProviderFactory是一个工厂类,工厂类的作用提供其他一系列相互之间有关系的类。在这里,DbProviderFactory就自动生成了包括DbConnection、DbCommand、 DbDataAdapter等一系列数据库操作的相关类。

1、配置文件ConnectionString节:

<configuration> 
    <connectionStrings> 
        <add name="default"  connectionString="server=localhost; user id=sa; password=******; database=northwind" 
             providerName="System.Data.SqlClient"/>
    </connectionStrings> 
</configuration>

2、利用DbProviderFactory类自动查找数据库的驱动

ConnectionStringSettings settings = ConfigurationManager.ConnectionStrings["default"];
DbProviderFactory provider = DbProviderFactories.GetFactory(settings.ProviderName);

3、利用DbProviderFactory类实例创建各种ADO.Net对象。

using (DbConnection conn = provider.CreateConnection())
{
    conn.ConnectionString = settings.ConnectionString;
    conn.Open();
    DbCommand cmd = conn.CreateCommand();
    cmd.CommandText = "Select top 10 * From ShortTermBill";
    
    //使用DbDataAdapter
    DbDataAdapter da = provider.CreateDataAdapter();
    da.SelectCommand = cmd;
    DataSet ds = new DataSet();
    da.Fill(ds);
    da.Dispose();
    Console.WriteLine(ds.Tables[0].Rows[0]["BillCode"]);
    
    //使用DbDataReader
    DbDataReader reader = cmd.ExecuteReader()
    while (reader.Read())
    {
        Console.WriteLine(reader.GetString(0));
    }
    conn.Close();
}

三、利用DbConnection获取数据库架构信息

SQL Server 架构集合 - ADO.NET | Microsoft 官方文档

class Program
{
    static void Main()
    {
        string connectionString = GetConnectionString();
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            // Connect to the database then retrieve the schema infORMation.  
            connection.Open();string[] columnRestrictions = new String[4];

            // For the array, 0-member represents Catalog; 1-member represents Schema;
            // 2-member represents Table Name; 3-member represents Column Name.
            // Now we specify the Table_Name and Column_Name of the columns what we want to get schema information.
            columnRestrictions[2] = "Device";

            DataTable departmentIDSchemaTable = connection.GetSchema("Columns", columnRestrictions);

            ShowColumns(departmentIDSchemaTable);

        }
    }

    private static string GetConnectionString()
    {
        // To avoid storing the connection string in your code,  
        // you can retrieve it from a configuration file.  
        return "server=10.126.64.1;Database=TPM;user=it;pwd=;ApplicationIntent=ReadOnly;MultiSubnetFailover=True";
    }
    private static void ShowColumns(DataTable columnsTable)
    {
        var selectedRows = from info in columnsTable.AsEnumerable()
                           select new
                           {
                               TableCatalog = info["TABLE_CATALOG"],
                               TableSchema = info["TABLE_SCHEMA"],
                               TableName = info["TABLE_NAME"],
                               ColumnName = info["COLUMN_NAME"],
                               DataType = info["DATA_TYPE"],
                               ORDINAL_POSITION = info["ORDINAL_POSITION"],
                               COLUMN_DEFAULT = info["COLUMN_DEFAULT"],
                               IS_NULLABLE = info["IS_NULLABLE"],
                               CHARACTER_MAXIMUM_LENGTH = info["CHARACTER_MAXIMUM_LENGTH"],
                               NUMERIC_PRECISION = info["NUMERIC_PRECISION"],
                               NUMERIC_SCALE = info["NUMERIC_SCALE"],
                               DATETIME_PRECISION = info["DATETIME_PRECISION"],
                           };

        Console.WriteLine("{0,-15},{1,-15},{2,-15},{3,-15},{4,-15},{5,-15},{6,-15},{7,-15},{8,-15},{9,-15},{10,-15},{11,-15}", "TableCatalog", "TABLE_SCHEMA",
            "表名", "列名", "数据类型", "字段原始顺序", "列默认值", "是否可空", "字符串最大长度", "数字精度", "数字小数点位数", "日期精度"
            );
        foreach (var row in selectedRows)
        {
            Console.WriteLine("{0,-15},{1,-15},{2,-15},{3,-15},{4,-15},{5,-15},{6,-15},{7,-15},{8,-15},{9,-15},{10,-15},{11,-15}", row.TableCatalog,
                row.TableSchema, row.TableName, row.ColumnName, row.DataType, row.ORDINAL_POSITION, row.COLUMN_DEFAULT, row.IS_NULLABLE
                , row.CHARACTER_MAXIMUM_LENGTH, row.NUMERIC_PRECISION, row.NUMERIC_SCALE, row.DATETIME_PRECISION);
        }
    }
}

到此这篇关于C#使用ADO.Net连接数据库与DbProviderFactory实现多数据库访问的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: C#使用ADO.Net连接数据库与DbProviderFactory实现多数据库访问

本文链接: https://www.lsjlt.com/news/148545.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#使用ADO.Net连接数据库与DbProviderFactory实现多数据库访问
    一、ADO.Net数据库连接字符串 1、OdbcConnection(System.Data.Odbc) (1)SQL Sever 标准安全:" Driver={SQL S...
    99+
    2022-11-13
  • C#怎么使用ADO.Net连接数据库与实现多数据库访问
    本文小编为大家详细介绍“C#怎么使用ADO.Net连接数据库与实现多数据库访问”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#怎么使用ADO.Net连接数据库与实现多数据库访问”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来...
    99+
    2023-06-30
  • ADO.NET中如何使用连接模式访问数据库中的数据
    本篇内容介绍了“ADO.NET中如何使用连接模式访问数据库中的数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!ADO.NET框架支持两种模...
    99+
    2023-06-17
  • C#利用反射实现多数据库访问
    在上一篇文章中讲解了什么是反射,以及利用反射可以获取程序集里面的哪些内容。在平时的项目中,可能会遇到项目需要使用多种数据库,这篇文章中将会讲解如何利用反射实现访问多种数据库。 项目整...
    99+
    2022-11-13
  • jdbc连接池怎么实现数据库访问
    JDBC连接池是一种管理数据库连接的技术,它可以提供可用的数据库连接给应用程序使用,从而提高数据库访问的性能和效率。以下是实现JDB...
    99+
    2023-09-15
    jdbc 数据库
  • ADO.NET连接数据库使用是怎样的
    本篇文章为大家展示了ADO.NET连接数据库使用是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。如果我们利用Command 对象所执行的命令是有传回数据的Select 叙述,此时Co...
    99+
    2023-06-17
  • [C#] WinForm/WPF 实现数据库连接与操作(MySQL)
    目录 🌿前言 🌿MySQL数据库简介 🌿数据库的基本概念 🌿ADO.NET体系结构 数据提供程序(.NET Framework Data Provider)程序数...
    99+
    2023-09-03
    c# 数据库 wpf mysql
  • C#连接SQL Sever数据库与数据查询实例之数据仓库详解
    目录前言1.下载后打开选择登录:Windows身份验证2.创建登录的账号和密码(右键创建)3.创建数据库表 表的右键新建即可4.导入数据 这里以 信息表为例子C#连接数据库1.创建连...
    99+
    2022-11-13
  • ADO.Net 中如何使用Team连接创建数据库
    ADO.Net 中如何使用Team连接创建数据库,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Connection Pool 是什么呢每当程序需要读写数据库地时候。Connec...
    99+
    2023-06-17
  • C++怎么实现数据库连接池
    本文小编为大家详细介绍“C++怎么实现数据库连接池”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++怎么实现数据库连接池”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。项目背景为了提高Mysql数据库的访问瓶颈...
    99+
    2023-07-05
  • C++连接并使用MySQL数据库
    本文实例为大家分享了C++连接并使用MySQL数据库的具体代码,供大家参考,具体内容如下 1. C++连接MySQL数据库 首先在VS里新建C++工程项目,右键工程项目名,选择属性。 选择平台选择 选择配置管理器...
    99+
    2022-05-24
    C++ MySQL
  • C++使用MySQL Connector/C++访问mysql数据库
    去官网下载,分为release模式和debug模式两种,分别对应VS中的release和debug。如下图所示: 注意: 如果使用debug模式,下载的上面的release模式库文件,那么编译就会出...
    99+
    2023-09-05
    数据库 mysql c++
  • ADO.NET怎么通过拖拽形式实现数据库连接
    本篇内容主要讲解“ADO.NET怎么通过拖拽形式实现数据库连接”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ADO.NET怎么通过拖拽形式实现数据库连接”吧!ADO.NET程序设计实验步骤(1)...
    99+
    2023-06-17
  • SpringBoot多数据库连接(mysql+oracle)的实现
    出于业务需求,有时我们需要在spring boot web应用程序中配置多个数据源并连接到多个数据库。 使用过Spring Boot框架的小伙伴们,想必都发现了Spring Boot...
    99+
    2022-11-11
  • Flask数据库如何连接与使用
    本篇内容主要讲解“Flask数据库如何连接与使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Flask数据库如何连接与使用”吧!数据库连接配置HOST = "XX...
    99+
    2023-07-05
  • 使用sqlplus连接Oracle数据库问题
    目录使用sqlplus连接oracle第0步推荐方式其他方式sqlplus连接Oracle的正确语法conn链接数据库语法示例总结使用sqlplus连接Oracle 第0步 以下操作均需要在oracle用户下执行,注意短...
    99+
    2022-12-08
    sqlplus连接Oracle sqlplusOracle数据库 连接Oracle数据库
  • C# 连接本地数据库的实现示例
    目录使用环境 1. 安装MySQL2. 连接本地MySQL3. C# 连接本地MySQL使用环境  C#VSCodeM1 1. 安装MySQL 下载MySQL软件...
    99+
    2022-11-13
  • 如何实现SQLite数据库访问与生成
    这篇文章将为大家详细讲解有关如何实现SQLite数据库访问与生成,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Xamarin数据库访问方式本节我们将讲解数据库的方式方式以及数据库的生成方法。访问方式Xam...
    99+
    2023-06-03
  • 使用C#连接并读取MongoDB数据库
    在上篇文章中,讲解了MongoDB的基本操作,包括增、删、改、查,但是这些操作都是在命令行模式下进行的,这篇文章中讲解如何使用C#程序连接到MongoDB数据库,并且读取里面的文档。...
    99+
    2022-11-13
  • C++怎么连接并使用MySQL数据库
    这篇文章主要为大家展示了“C++怎么连接并使用MySQL数据库”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C++怎么连接并使用MySQL数据库”这篇文章吧。1...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作