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 验证的数据库联接字符串是不同的。