C# 是如何跟SQL Server进行连接的?
在C#/.NET程序设计中,离不开ADO.NET。ADO.NET是.NET连接数据库的重要组件。使用其可以很方便地访问数据库,ADO.NET还可以访问Oracle数据库、Access数据库、SQL Server数据库等主流的数据库。使用ADO.NET连接数据库主要使用ADO.NET中的5个类。
数据库连接类Connection:如果连接SQLServer数据库,可以使用SqlConnetion类。在使用SqlConnection类是要引用一个System.Data.SqlClient的命名空间。
数据库命令类Command:如果连接的是SQLServer数据库,可以使用SqlCommand。数据库命令类主要执行对数据库的操作,比如插入、删除、修改等。
数据库读取类DataReader:如果连接SQLServer数据库,可以使用SqlDataReader。数据库读取类是数据库命令类在执行了查询操作后返回的结果的数据类型。数据库读取类只是数据库的连接状态处于打开状态时才能使用,当数据库关闭时数据库读取类中就不能够再取值了。
数据集类DataSet:数据集相当于一个虚拟数据库,每一个数据集中包括了多张数据表。即使数据库的连接处于断开状态,还是可以从数据集中继续存取记录,只是数据是存放在数据集中的,并没有存放在数据库中。
数据适配类DataAdapter:如果连接SQLServer数据库,可以使用SqlDataAdapter。数据适配器经常和数据集一起使用,通过数据适配器可以把数据库中的数据存放到数据集中,数据适配器可以说是数据集和数据库之间的一个桥梁。
1、使用SQL用户名、密码验证
(a)Data Source = 服务器名;Initial Catalog = 数据库名;User ID = 用户名;Pwd = 密码(没有密码可以省略)
(b)sql server 身份验证 连接字符串String connsql = "server=服务器名称;uid=登录名称;pwd=登录密码;database=数据库名称";
例如:public string connString = "Data Source=xp;Initial Catalog=ExpressManager;User ID = sa;Pwd = 123";
2、使用windows身份验证
(a)Data Source = 服务器名;Initial Catalog = 数据库名;Integrated Security = TRUE(或者:SSPI)
(b)windows 身份验证连接字符串 String connsql = "server=服务器名称;database=数据库名称;Trusted_Connection=SSPI";
例如:public string connString = "Data Source=xp;Initial Catalog=ExpressManager;Integrated Security=TRUE";
在身份验证可以选SQL 用户名、密码验证。
接下来就是在源文件里加入连接数据库的代码,首先得在xxx.cs源文件中加入以下语句
using System.Data;
using System.Data.SqlClient;
接下来就是对数据库的操作类方法的实现:
- // 数据库操作类
- class Express
- {
- public string connString = "Data Source=xp;Initial Catalog=ExpressManager;Integrated Security=TRUE";
- //创建连接对象的变量
- public SqlConnection conn;
- // 执行对数据表中数据的增加、删除、修改操作
- public int NonQuery(string sql)
- {
- conn = new SqlConnection(connString);
- int a = -1;
- try
- {
- conn.Open(); //打开数据库
- SqlCommand cmd = new SqlCommand(sql, conn);
- a = cmd.ExecuteNonQuery();
- }
- catch
- {
- }
- finally
- {
- if (conn.State == ConnectionState.Open)
- {
- conn.Close(); //关闭数据库
- }
- }
- return a;
- }
- // 执行对数据表中数据的查询操作
- public DataSet Query(string sql)
- {
- conn = new SqlConnection(connString);
- DataSet ds = new DataSet();
- try
- {
- conn.Open(); //打开数据库
- SqlDataAdapter adp = new SqlDataAdapter(sql, conn);
- adp.Fill(ds);
- }
- catch
- {
- }
- finally
- {
- if(conn.State== ConnectionState.Open)
- conn.Close(); //关闭数据库
- }
- return ds;
- }
- }