连接数据库方法

SqlConnection ,OleDbConnection ,OdbcConnection 和OracleConnection

2013-05-30 14:03 1740人阅读 评论(0) 收藏 举报

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

SqlConnection 类的对象连接SQL Server数据库;OracleConnection 类的对象连接Oracle 数据库;OleDbConnection 类的对象连接支持OLE DB的数据库,如Access ;而

OdbcConnection 类的对象连接任何支持ODBC 的数据库。与数据库的所有通讯最终都是通过Connection 对象来完成的。

(1)用SqlConnection 连接SQL Server

加入命名空间:using System.Data.SqlClient;

连接数据库: string conString = "data source=IP地址; Database=数据库名;user id=用户名; password=密码";

SqlConnection myconnection = new SqlConnection(conString); myconnection.open();

(2)用OracleConnection 连接Oracle

加入命名空间:using System.Data.OracleClient;

连接数据库: string conString = "data source=IP地址; Database=数据库名;user id=用户名; password=密码";

OracleConnection myconnection = new

OracleConnection(conString);

myconnection.open();

(3)用 MySqlConnection 连接MySQL

在.NET 中连接MySQL 数据库有两种方法:MySQL Connector/ODBC 和 MySQL

Connector/NET,ODBC 连接器是符合ODBC 标准的交互平台,是.NET 访问MySQL 数据库最好的选择。

首先,需要下载安装MySql-connector-net-5.1.5.Data.msi 这个组件。如果是默认安装,则可以在C:\Program Files\MySQL\MySQL Connector Net 5.1.5\Binaries\.NET2.0中找到MySql.Data.dll ,将该文件复制到项目的bin 目录下。并且在项目中添加引用MySql.Data.dll 。实现代码如下:

加入命名空间:using MySql.Data.MySqlClient;

连接数据库: string conString = "server=IP地址; Database=数据库名;user id=用户名; password=密码";

MySqlConnection myconnection = new

MySqlConnection(conString);

myconnection.open();

(4)用OleDbConnection 连接各种数据源

由于数据源不同,相应的连接字符串也会不同。

加入命名空间:using System.Data.OleDb;

连接 SQL Server: string conString = "Provider=SQLOLEDB.1; Persist Security Info=False; user id=用户名; Database=数据库名; data source=COMPUTER; ";

OleDbConnection myconnection = new

OleDbConnection(conString);

myconnection.open();

连接 Access : string conString = "Provider=Microsoft.Jet.OLEDB.4.0; data

source=C:\\Database1.mdb; Persist Security Info=False;";

OleDbConnection myconnection = new

OleDbConnection(conString);

myconnection.open();

(也可以通过建立.udl 文件来获得字符串)

连接 Oracle : string conString = "Provider=MSDAORA; user id=用户名; password=密码; data source=db; Persist Security Info=False;";

OleDbConnection myconnection = new

OleDbConnection(conString);

myconnection.open();

(也可以通过OracleConnection 连接)

注意:使用不同的Connection 对象需要导入不同的命名空间。OleDbConnection 的命名空间为System.Data.OleDb 。SqlConnection 的命名空间为System.Data.SqlClient 。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 。

view plaincopy to clipboard 1. string constr = "server=.;database=myschool;integrated security=SSPI";

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

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

";

4. SqlConnection con = new SqlConnection(constr);

5. // con.ConnectionString = constr;

6. string sql = "select count(*) from grade";

7. SqlCommand com = new SqlCommand(sql,con);

8. try

9. {

10. con.Open();

11. MessageBox.Show(" 成功连接数据库" );

12. int x = (int )com.ExecuteScalar();

13. MessageBox.Show(string .Format(" 成功读取{0},条记录" , x));

14. }

15. catch (Exception)

16. {

17.

18. throw ;

19. }

20. finally

21. {

22. con.Close(); 23. MessageBox.Show(" 成功关闭数据库连接" , " 提示信息

" , MessageBoxButtons.YesNoCancel);

24. }

5、Web.config 配置

在ASP.NET 2.0中,使用了一种在运行时解析为连接字符串值的新的声明性表达式语法,按名称引用数据库连接字符串。连接字符串本身存储在 Web.config 文件中的 <

connectionStrings >配置节下面,以便易于在单个位置为应用程序中的所有页进行维护。 1.

2.

3.

4.

True;Database=myschool;Persist Security Info=True" providerName="System.Data .SqlClient" />

5.

6.

7.

8.

9.

我们也可以用下面的方式从配置文件直接读取数据库连接字符串。首先我们需要引用using System.Web.Configuration 命名空间,该命名空间包含用于设置 ASP.NET 配置的类。string connectionString

=ConfigurationManager.ConnectionStrings["myschool"].ConnectionString;

首先你应该区分Windows 验证与Sql 自身的验证的区别。

Windows 验证就是SqlServer 服务器使用Windows 自带的验证系统,如果你指定

SqlServer 内Windows 的一个组有访问的权限,那么加入此组的Windows 用户都有访问数据库的权限。此验证有个缺点,就是如果不是在域模式下,无法加入远程计算机的用户,所以如果使用C/S方式写程序的话,使用Windows 验证无法使本地计算机的Windows 帐户访问远程数据库服务器。

Sql 验证就简单多了,就是使用sqlserver 的企业管理器中自己定义由Sql 控制的用户,指

定用户权限等。这个帐户信息是由SqlServer 自己维护的,所以SqlServer 更换计算机后信息不会丢失,不用重新设定。

所以如果你的项目使用在一个比较大的网络中,而且对安全要求比较高,那么应该建立域,使用Windows 验证,而且要与系统管理员配合详细设定可以访问SqlServer 的Windows 帐户。如果使用一个小网络,而且此网络仅用来使用项目,对安全没有高要求,那么使用SqlServer 验证,而且更新,升级等都方便。

Windows 验证与SqlServer 验证的数据库联接字符串是不同的。

SqlConnection ,OleDbConnection ,OdbcConnection 和OracleConnection

2013-05-30 14:03 1740人阅读 评论(0) 收藏 举报

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

SqlConnection 类的对象连接SQL Server数据库;OracleConnection 类的对象连接Oracle 数据库;OleDbConnection 类的对象连接支持OLE DB的数据库,如Access ;而

OdbcConnection 类的对象连接任何支持ODBC 的数据库。与数据库的所有通讯最终都是通过Connection 对象来完成的。

(1)用SqlConnection 连接SQL Server

加入命名空间:using System.Data.SqlClient;

连接数据库: string conString = "data source=IP地址; Database=数据库名;user id=用户名; password=密码";

SqlConnection myconnection = new SqlConnection(conString); myconnection.open();

(2)用OracleConnection 连接Oracle

加入命名空间:using System.Data.OracleClient;

连接数据库: string conString = "data source=IP地址; Database=数据库名;user id=用户名; password=密码";

OracleConnection myconnection = new

OracleConnection(conString);

myconnection.open();

(3)用 MySqlConnection 连接MySQL

在.NET 中连接MySQL 数据库有两种方法:MySQL Connector/ODBC 和 MySQL

Connector/NET,ODBC 连接器是符合ODBC 标准的交互平台,是.NET 访问MySQL 数据库最好的选择。

首先,需要下载安装MySql-connector-net-5.1.5.Data.msi 这个组件。如果是默认安装,则可以在C:\Program Files\MySQL\MySQL Connector Net 5.1.5\Binaries\.NET2.0中找到MySql.Data.dll ,将该文件复制到项目的bin 目录下。并且在项目中添加引用MySql.Data.dll 。实现代码如下:

加入命名空间:using MySql.Data.MySqlClient;

连接数据库: string conString = "server=IP地址; Database=数据库名;user id=用户名; password=密码";

MySqlConnection myconnection = new

MySqlConnection(conString);

myconnection.open();

(4)用OleDbConnection 连接各种数据源

由于数据源不同,相应的连接字符串也会不同。

加入命名空间:using System.Data.OleDb;

连接 SQL Server: string conString = "Provider=SQLOLEDB.1; Persist Security Info=False; user id=用户名; Database=数据库名; data source=COMPUTER; ";

OleDbConnection myconnection = new

OleDbConnection(conString);

myconnection.open();

连接 Access : string conString = "Provider=Microsoft.Jet.OLEDB.4.0; data

source=C:\\Database1.mdb; Persist Security Info=False;";

OleDbConnection myconnection = new

OleDbConnection(conString);

myconnection.open();

(也可以通过建立.udl 文件来获得字符串)

连接 Oracle : string conString = "Provider=MSDAORA; user id=用户名; password=密码; data source=db; Persist Security Info=False;";

OleDbConnection myconnection = new

OleDbConnection(conString);

myconnection.open();

(也可以通过OracleConnection 连接)

注意:使用不同的Connection 对象需要导入不同的命名空间。OleDbConnection 的命名空间为System.Data.OleDb 。SqlConnection 的命名空间为System.Data.SqlClient 。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 。

view plaincopy to clipboard 1. string constr = "server=.;database=myschool;integrated security=SSPI";

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

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

";

4. SqlConnection con = new SqlConnection(constr);

5. // con.ConnectionString = constr;

6. string sql = "select count(*) from grade";

7. SqlCommand com = new SqlCommand(sql,con);

8. try

9. {

10. con.Open();

11. MessageBox.Show(" 成功连接数据库" );

12. int x = (int )com.ExecuteScalar();

13. MessageBox.Show(string .Format(" 成功读取{0},条记录" , x));

14. }

15. catch (Exception)

16. {

17.

18. throw ;

19. }

20. finally

21. {

22. con.Close(); 23. MessageBox.Show(" 成功关闭数据库连接" , " 提示信息

" , MessageBoxButtons.YesNoCancel);

24. }

5、Web.config 配置

在ASP.NET 2.0中,使用了一种在运行时解析为连接字符串值的新的声明性表达式语法,按名称引用数据库连接字符串。连接字符串本身存储在 Web.config 文件中的 <

connectionStrings >配置节下面,以便易于在单个位置为应用程序中的所有页进行维护。 1.

2.

3.

4.

True;Database=myschool;Persist Security Info=True" providerName="System.Data .SqlClient" />

5.

6.

7.

8.

9.

我们也可以用下面的方式从配置文件直接读取数据库连接字符串。首先我们需要引用using System.Web.Configuration 命名空间,该命名空间包含用于设置 ASP.NET 配置的类。string connectionString

=ConfigurationManager.ConnectionStrings["myschool"].ConnectionString;

首先你应该区分Windows 验证与Sql 自身的验证的区别。

Windows 验证就是SqlServer 服务器使用Windows 自带的验证系统,如果你指定

SqlServer 内Windows 的一个组有访问的权限,那么加入此组的Windows 用户都有访问数据库的权限。此验证有个缺点,就是如果不是在域模式下,无法加入远程计算机的用户,所以如果使用C/S方式写程序的话,使用Windows 验证无法使本地计算机的Windows 帐户访问远程数据库服务器。

Sql 验证就简单多了,就是使用sqlserver 的企业管理器中自己定义由Sql 控制的用户,指

定用户权限等。这个帐户信息是由SqlServer 自己维护的,所以SqlServer 更换计算机后信息不会丢失,不用重新设定。

所以如果你的项目使用在一个比较大的网络中,而且对安全要求比较高,那么应该建立域,使用Windows 验证,而且要与系统管理员配合详细设定可以访问SqlServer 的Windows 帐户。如果使用一个小网络,而且此网络仅用来使用项目,对安全没有高要求,那么使用SqlServer 验证,而且更新,升级等都方便。

Windows 验证与SqlServer 验证的数据库联接字符串是不同的。


相关文章

  • 网络编程技术课程论文
  • 在VB中如何使用 Winsock 控件 班级 计算机0501 姓名 白璐 学号 3050603018 摘要 利用 WinSock 控件可以与远程计算机建立连接,并通过用户数据文报协议 (UDP)或者传输控制协议 (TCP)进行数据交换,并分 ...查看


  • 组态王使用教程
  • 本教程是学习"组态王"软件的入门教程,覆盖了"组态王"软件的大部分基本功能.学完本教程后,您将能够建立一个功能齐全.可实际使用的上位机监控系统. 下列课程向你演示如何: * 使用工程浏览器 * 建立新 ...查看


  • 常见网络故障快速解决方法
  • 网管员须知 常见网络故障快速解决方法 今天的网络发展得真是太快了,关键的问题是它还包含企业的重要应用和服务.单位内的用户和雇员在很大程度上需要依赖网络工作.在这种环境中,网络技术人员往往要诊断一些复杂的网络故障,保持网络运行的通畅.本文讨论 ...查看


  • 中控考勤机技术文档
  • 考勤机与电脑通讯不成功 一:TCP/IP连接不上 1. 设置IP地址: (1)电脑与考勤机直接连接,必须使用交叉网线(注1),考勤机IP地 址要与电脑IP地址在同一网段,最后一组数字不能相同. (2)考勤机与交换机连接,应使用直通网线,考勤 ...查看


  • 目前主要端口扫描技术
  • 目前主要端口扫描技术 目前主要的端口扫描技术有以下几种. 1.TCP connect Scan(TCP 连接扫描) 这种方法也称之为"TCP全连接扫描".它是最简单的一种扫描技术,所利用的是TCP 协议的3次握手过程.它 ...查看


  • winsock控件的基本属性
  • 一,WinSock简介 Socket(套接字)最初是由加利福尼亚大学Berkeley(伯克利)分校为UNIX妈作系统开发的网络通信接口,随着UNIX的广泛使 用,Socket成为当前最流行的网络通信应用程序接口之一.20世纪90年代初,由S ...查看


  • ASP连接access数据库常用的两种方法
  • ASP最常连接的是ACCESS与MSSQL两种数据库,本文先介绍简单的连接ACCESS数据库的两种常用方法. 假设数据库名称为data.mdb,位于根目录下,与conn.asp文件同一目录. 连接数据库文件conn.asp写法如下: 第一种 ...查看


  • SYN攻击原理
  • 浅谈DDOS攻击原理及防护方法 聚生网管系统有效保护局域网安全.监控上网安全.管理电脑上网安全.控制安全上网.进行局域网安全 防护.防止网络病毒.防范网络攻击,详情点此-- 从07年的爱沙尼亚DDos信息战,到今年广西南宁30个网吧遭受到D ...查看


  • 软件体系结构论文
  • 软件体系结构 论文 年级院系: 专业班级: 姓名: 学号: 指导老师: 2014年12月28日 目录: 一.软件体系结构概论................................1 二.体系结构风格................ ...查看


热门内容