C# 连接SQL Server数据库的几种方式

如何使用Connection对象连接数据库?

对于不同的.NET数据提供者,ADO.NET采用不同的Connection对象连接数据库。这些Connection对象为我们屏蔽了具体的实现细节,并提供了一种统一的实现方法。

Connection类有四种:SqlConnection,OleDbConnection,OdbcConnection和OracleConnection。

SqlConnection类的对象连接SQL Server数据库;OracleConnection 类的对象连接Oracle数据库;OleDbConnection类的对象连接支持OLE DB的数据库,如Access;而OdbcConnection类的对象连接任何支持ODBC的数据库。与数据库的所有通讯最终都是通过Connection对象来完成的。

SqlConnection类

Connection 用于与数据库“对话”,并由特定提供程序的类(如 SqlConnection)表示。尽管SqlConnection类是针对Sql Server的,但是这个类的许多属性、方法与事件和OleDbConnection及OdbcConnection等类相似。

注意:使用不同的Connection对象需要导入不同的命名空间。OleDbConnection的命名空间为System.Data.OleDb。SqlConnection的命名空间为System.Data.SqlClient。OdbcConnection的命名空间为System.Data.Odbc。OracleConnection的命名空间为System.Data.OracleClinet。

我们就可以使用如下两种方式连接数据库,即采用集成的Windows验证和使用Sql Server身份验证进行数据库的登录。

1、集成的Windows身份验证语法范例

string constr = "server=.;database=myschool;integrated security=SSPI";

说明:程序代码中,设置了一个针对Sql Server数据库的连接字符串。其中server表示运行Sql Server的计算机名,由于程序和数据库系统是位于同一台计算机的,所以我们可以用.(或localhost)取代当前的计算机名。database表示所使用的数据库名(myschool)。由于我们希望采用集成的Windows验证方式,所以设置 integrated security为SSPI即可。

2、Sql Server 2005中的Windows身份验证模式如下:

string constr = "server=.;database=myschool;uid=sa;pwd=sa";

说明:程序代码中,采用了使用已知的用户名和密码验证进行数据库的登录。数据库连接字符串是不区分大小写的。uid为指定的数据库用户名,pwd为指定的用户口令。为了安全起见,一般不要在代码中包括用户名和口令,你可以采用前面的集成的Windows验证方式或者对Web.Config文件中的连接字符串加密的方式提高程序的安全性。

3、Sql Server 2005中的Sql Server身份验证模式如下:

string constr = "data source=.;initial catalog=myschool;user id=sa;pwd=sa";

说明:程序代码中data source 表示运行数据库对应的计算机名,initial catalog表示所使用的数据库名。uid为指定的数据库用户名,pwd为指定的用户口令。

4、Access数据库的连接字符串的形式如下:

string connectionString =@"provider=Microsoft.Jet.OLEDB.4.0;data source=c:\DataSource\myschool.mdb";

说明:程序代码中,通过专门针对Access数据库的OLE DB提供程序,实现数据库的连接。这使用的的OLE DB提供程序为Microsoft.Jet.OLEDB.4.0,并且数据库存放在c:\DataSource目录下,其数据库文件为myschool.mdb。  

string constr = "server=.;database=myschool;integrated security=SSPI";
            //string constr = "server=.;database=myschool;uid=sa;pwd=sa";
            //string constr = "data source=.;initial catalog=myschool;user id=sa;pwd=sa";
            SqlConnection con = new SqlConnection(constr);
           // con.ConnectionString = constr;
            string sql = "select count(*) from grade";
            SqlCommand com = new SqlCommand(sql,con);
            try
            {
                con.Open();
                MessageBox.Show("成功连接数据库");
                int x = (int)com.ExecuteScalar();
                MessageBox.Show(string.Format("成功读取{0},条记录", x));
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                con.Close();
                MessageBox.Show("成功关闭数据库连接", "提示信息", MessageBoxButtons.YesNoCancel);
            }

猜你喜欢

转载自blog.csdn.net/zhang_09_11/article/details/79843959