从C#连接SQLServer

时间:2013-04-26 13:35:46

标签: c# sql-server database-connection

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

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

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

1 个答案:

答案 0 :(得分: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实例 string(此处的连接字符串示例 http://www.connectionstrings.com
  2. 打开连接
  3. 创建类的特定实例,如DbCommand,DbDataReader或 DbDataAdapter执行命令来操作和检索你的 数据。如有必要,您可以使用其他类,如DataTable和 DataSet用于存储检索到的数据的断开连接副本。
  4. 关闭后再处理连接
  5. 这是基本情况。正如您所看到的,一个简单的答案不能涵盖这个广泛的主题,因此需要进行一些研究。

    这是一个非常简单的例子

    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();
    }