1. ADO.Net连接数据库
ADO.Net是.NET Framework的一部分,是用于连接和操作各种类型数据库的技术。使用ADO.Net连接数据库可以使用多种方式,包括直接使用具体数据库提供的API,或者使用DbProviderFactory实现多数据库访问。
1.1 使用SqlConnection连接SQL Server数据库
要连接SQL Server数据库,可以使用SqlConnection类。首先,需要引入System.Data.SqlClient命名空间,然后在代码中创建一个SqlConnection对象,并指定要连接的数据库的连接字符串:
using System.Data.SqlClient;
//...
string connectionString = "Data Source=server;Initial Catalog=database;User ID=username;Password=password;";
SqlConnection connection = new SqlConnection(connectionString);
接下来,可以打开连接并执行查询、插入、更新等操作:
connection.Open();
// 执行SQL查询或更新
//...
connection.Close();
1.2 使用OleDbConnection连接其他数据库
OleDb是一种通用的数据库连接方式,可以用于连接多种类型的数据库,如Access、Excel、Oracle等。与SqlConnection类似,使用OleDbConnection类连接其他数据库也需要先引入命名空间,并创建一个OleDbConnection对象并指定连接字符串:
using System.Data.OleDb;
//...
string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=path;Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1;\"";
OleDbConnection connection = new OleDbConnection(connectionString);
然后,可以打开连接并执行查询、插入、更新等操作:
connection.Open();
// 执行SQL查询或更新
//...
connection.Close();
1.3 使用OracleConnection连接Oracle数据库
要连接Oracle数据库,可以使用OracleConnection类。首先,需要引入System.Data.OracleClient命名空间,然后在代码中创建一个OracleConnection对象并指定连接字符串:
using System.Data.OracleClient;
//...
string connectionString = "Data Source=server;User ID=username;Password=password;";
OracleConnection connection = new OracleConnection(connectionString);
接下来,可以打开连接并执行查询、插入、更新等操作:
connection.Open();
// 执行SQL查询或更新
//...
connection.Close();
2. DbProviderFactory实现多数据库访问
DbProviderFactory是一个抽象类,用于通过工厂模式来创建特定数据库的连接对象。使用DbProviderFactory可以在不改变代码的情况下切换不同的数据库。
2.1 创建DbProviderFactory对象
要使用DbProviderFactory,首先需要在代码中创建一个DbProviderFactory对象。可以使用具体数据库提供的DbProviderFactory的派生类,如SqlServerProviderFactory、OracleClientFactory等,也可以使用通用的DbProviderFactories.GetFactory方法获取默认的DbProviderFactory。
using System.Data.Common;
//...
string providerName = "System.Data.SqlClient"; //或者"System.Data.OracleClient"等
DbProviderFactory factory = DbProviderFactories.GetFactory(providerName);
2.2 创建Connection对象
接下来,可以使用DbProviderFactory的CreateConnection方法来创建特定数据库的Connection对象:
string connectionString = "Data Source=server;Initial Catalog=database;User ID=username;Password=password;";
DbConnection connection = factory.CreateConnection();
connection.ConnectionString = connectionString;
然后,可以打开连接并执行查询、插入、更新等操作,代码与上述直接创建连接对象的方式相同。
2.3 其他操作
除了使用DbProviderFactory创建Connection对象外,还可以使用DbProviderFactory创建Command对象、DataAdapter对象等,进行其他数据库操作。
// 创建Command对象
DbCommand command = factory.CreateCommand();
command.Connection = connection;
command.CommandText = "SELECT * FROM tableName";
// 创建DataAdapter对象
DbDataAdapter adapter = factory.CreateDataAdapter();
adapter.SelectCommand = command;
DataTable dataTable = new DataTable();
adapter.Fill(dataTable);
总结
本文介绍了使用ADO.Net连接数据库的方法,包括直接使用具体数据库提供的连接类,以及使用DbProviderFactory实现多数据库访问。通过使用ADO.Net,我们可以方便地连接和操作各种类型的数据库,并且通过使用DbProviderFactory,可以实现在不同数据库之间的切换。