.net访问Oracle数据库——数据库连接

.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() +"
");
            }
            dr.Close();
            conn.Close();

你可能感兴趣的:(ASP.NET(C#))