.net访问Oracle数据库——数据库连接
2011-03-25 14:09
330 查看
.net与Oracle之间的访问,毕竟不是一个娘生的,和sqlserver还是稍微有点区别。
1.命名空间的选择:
访问Oracle数据库,通过System.Data.OracleClient、System.Data.OleDb、System.Data.Odbc三个命名空间都可以访问。System.Data.OracleClient访问的效率最高,System.Data.OracleClient对Oracle类型的支持也是最多的,毕竟是为Oracle量身定做的。
2.数据库连接:
无论是那种访问Oracle 都需要在 .NET 运行的机器(ASP.NET 中就是 Web 服务器)安装 Oracle 客户端组件。(这一点是和 MS 的两种数据库不同的,MS 的东西安装 MDAC: Microsoft Data Access Component 2.6 以上版本后,就无须再安装 SQL Server 客户端或者 Office 软件,就能访问。)
System.Data.OracleClient 中访问 Oracle 数据库的连接串是:"User ID=用户名; Password=密码; Data Source=服务器"。
System.Data.OleDb中访问 Oracle 数据库的连接串是:"Provider=MSDAORA.1; User ID=用户名; Password=密码; Data Source=服务器"。
System.Data.Odbc中访问 Oracle 数据库的连接串是:"Driver=Microsoft ODBC for Oracle; Uid=用户名; Pwd=密码; Server=服务器";
3.Oracle 中的数据类型:
SQL Server 的大多数据类型很容易找到 .NET 中比较接近的类型,而Oracle 中的类型就离 .NET 类型差别很多,不是一个娘生的。
number: 数字类型,一般是 Number(M,N),M是有效数字,N是小数点后的位数(默认0),这个是按十进制说的。
nvarchar2: 可变长字符型(Unicode),(Orcle8i增加nvarchar2类型,以后Oracle更新只会对nvarchar2支持)(去掉“n”为非 Unicode 的,下同。)
nchar: 定长字符型(Unicode)。
nclob: “写作文”的字段,存储大量字符(Unicode)时用。
date: 日期类型。
Oracle 中字段不能是 bit 或者 bool 之类的类型,一般是 number(1) 代替的。
4.连接sample:
用oracleclient连接,(其他连接只需更换命名空间和连接字符串)
string oracle_conn = "User ID=UserId; Password=******; Data Source=ServerName";
string sql_search = "select * from table_test ";
using (OracleConnection conn = new OracleConnection(oracle_conn))
{
conn.Open();
OracleCommand com = new OracleCommand(sql_search, conn);
OracleDataReader dr = com.ExecuteReader();
while (dr.Read())
{
Response.Write(dr["c_name"].ToString() +"<br>");
}
dr.Close();
conn.Close();
1.命名空间的选择:
访问Oracle数据库,通过System.Data.OracleClient、System.Data.OleDb、System.Data.Odbc三个命名空间都可以访问。System.Data.OracleClient访问的效率最高,System.Data.OracleClient对Oracle类型的支持也是最多的,毕竟是为Oracle量身定做的。
2.数据库连接:
无论是那种访问Oracle 都需要在 .NET 运行的机器(ASP.NET 中就是 Web 服务器)安装 Oracle 客户端组件。(这一点是和 MS 的两种数据库不同的,MS 的东西安装 MDAC: Microsoft Data Access Component 2.6 以上版本后,就无须再安装 SQL Server 客户端或者 Office 软件,就能访问。)
System.Data.OracleClient 中访问 Oracle 数据库的连接串是:"User ID=用户名; Password=密码; Data Source=服务器"。
System.Data.OleDb中访问 Oracle 数据库的连接串是:"Provider=MSDAORA.1; User ID=用户名; Password=密码; Data Source=服务器"。
System.Data.Odbc中访问 Oracle 数据库的连接串是:"Driver=Microsoft ODBC for Oracle; Uid=用户名; Pwd=密码; Server=服务器";
3.Oracle 中的数据类型:
SQL Server 的大多数据类型很容易找到 .NET 中比较接近的类型,而Oracle 中的类型就离 .NET 类型差别很多,不是一个娘生的。
number: 数字类型,一般是 Number(M,N),M是有效数字,N是小数点后的位数(默认0),这个是按十进制说的。
nvarchar2: 可变长字符型(Unicode),(Orcle8i增加nvarchar2类型,以后Oracle更新只会对nvarchar2支持)(去掉“n”为非 Unicode 的,下同。)
nchar: 定长字符型(Unicode)。
nclob: “写作文”的字段,存储大量字符(Unicode)时用。
date: 日期类型。
Oracle 中字段不能是 bit 或者 bool 之类的类型,一般是 number(1) 代替的。
4.连接sample:
用oracleclient连接,(其他连接只需更换命名空间和连接字符串)
string oracle_conn = "User ID=UserId; Password=******; Data Source=ServerName";
string sql_search = "select * from table_test ";
using (OracleConnection conn = new OracleConnection(oracle_conn))
{
conn.Open();
OracleCommand com = new OracleCommand(sql_search, conn);
OracleDataReader dr = com.ExecuteReader();
while (dr.Read())
{
Response.Write(dr["c_name"].ToString() +"<br>");
}
dr.Close();
conn.Close();
相关文章推荐
- 初学.net遇到的问题:数据库访问连接问题
- .NET下使用Oracle数据库、数据库访问技术(上)
- .net连接ORACLE数据库,为什么数据库进程无法消除?
- 精华的微软文章".NET 数据访问架构指南",特别是数据库连接的测试.即监视链接池化(1)
- 精华的微软文章".NET 数据访问架构指南",特别是数据库连接的测试.即监视链接池化 (2)
- .Net数据库访问问题:已有打开的与此连接相关联的 DataReader,必须首先将它关闭。
- 精华的微软文章".NET 数据访问架构指南",特别是数据库连接的测试.即监视链接池化 (2)
- Linux c/c++访问Oracle数据库--连接数据库
- 精华的微软文章".NET 数据访问架构指南",特别是数据库连接的测试.即监视链接池化(1)
- C#不安装Oracle客户端连接Oracle数据库,使用微软自带System.Data.OracleClient访问Oracle
- .Net(c#) 连接 ACCESS 数据库
- .Net连接Oracle数据库(查询、添加数据)
- EF 配置Oracle数据库数据库连接字符串的实例
- 从Delphi 8中选择一种数据库连接方式访问IBM DB2 UDB
- .net 访问不同数据库之配置参数和参数数据类型
- 在分布式事务(MSDTC)中使用OLE DB数据库连接访问数据
- .NET中各种数据库连接大全
- java SE_ 数据库的连接操作_访问数据库
- .Net 连接Oracle 数据库写法
- 关于.net中连接linux系统下的oracle数据库