0

我正在做一些关于连接到不同数据库的研究。在 Java 中,可以使用 JDBC 驱动程序连接到数据库。我正在研究SqlConnection使用以下代码通过对象通过 C# 连接 SQL Server 数据库:

SqlConnection cnn = new SqlConnection("Data Source=ServerName;Initial Catalog=DatabaseName;User ID=UserName;Password=Password");

在这种情况下是否使用了任何驱动程序,或者只是通过提供“ConnectionString”来处理所有工作的“SqlConnection”?

4

1 回答 1

2

ADO.NET 是一组通用类和​​接口,每个网络程序都使用它来与各种数据库进行交互。

ADO.NET 在命名空间 System.Data.SqlClient 中提供了一组内置类以连接到 SqlServer 数据库,还有一组用于 Oracle 的类(相当过时)和一组用于通用 OLEDB 和 ODBC 驱动程序的类它们在自己的命名空间中。安装在客户端计算机上的 NET 框架包含连接到 SqlServer 所需的一切。

其他供应商已经使用相同的基类和接口(MySql、Oracle 自己的 ODP.NET 提供程序、SQLite 等)构建了特定的 ADO.NET 提供程序,当然您需要安装从供应商站点下载的这些文件连接到他们的数据库所需的任何软件。

与 ADO.NET 交互的基本概念是:

  1. 创建传递特定连接字符串的 DbConnection 实例(此处为 http://www.connectionstrings.com的连接字符串示例
  2. 打开连接
  3. 创建 DbCommand、DbDataReader 或 DbDataAdapter 等类的特定实例,以执行命令来操作和检索数据。如有必要,您可以使用 DataTable 和 DataSet 等其他类来存储检索到的数据的断开连接的副本。
  4. 之后关闭并处理连接

这是基本情况。如您所见,一个简单的答案无法涵盖这个广泛的主题,因此需要进行一些研究。

这是一个非常简单的例子

string cmdText = "INSERT INTO Customers (Name, Address) VALUES (@name, @address)"
using (SqlConnection connection = new SqlConnection(connectionString))
{
    SqlCommand command = new SqlCommand(queryString, connection);
    command.Parameters.AddWithValue("@name", "Steve");
    command.Parameters.AddWithValue("@address", "Stackoverflow Street, 42");
    command.Connection.Open();
    command.ExecuteNonQuery();
}
于 2013-04-26T13:50:02.513 回答