c#使用oracle数据库(二)

  1. Oracle 和 Microsoft 均免费提供自己的 Oracle 数据提供程序。
    Microsoft 针对 .NET Framework 的提供程序已废弃。
    Oracle 则继续支持和开发其 .NET 数据提供程序 Oracle Data Provider for .NET (ODP.NET)。在本文中,我们将使用 ODP.NET,该提供程序包含在 Oracle Database 中或单独下载。

  2. ODP.NET 提供标准的 ADO.NET 数据访问,同时还提供专用于 Oracle 数据库的特性,如 XML DB、数据访问性能优化和真正应用集群负载平衡及快速连接故障切换

  3. 安装 ODP.NET 和 Oracle 客户端软件后,即可进行应用程序开发。在开发前,先确认客户端连通性。可使用 Oracle 自带的 SQL*Plus,测试是否能连接到 Oracle 数据库。

  4. tnsnames.ora 文件是一个 Oracle 网络配置文件,它定义用于建立连接的数据库地址。假定我们在 tnsnames.ora 文件中定义了一个数据库别名 OraDb,如下:
    OraDb=
    (DESCRIPTION=
    (ADDRESS_LIST=
    (ADDRESS=(PROTOCOL=TCP)(HOST=ORASRVR—(主机名))(PORT=1521----(端口号)))
    )
    (CONNECT_DATA=
    (SERVER=DEDICATED)
    (SERVICE_NAME=ORCL(SID值))
    )
    )
    别名,您需要使用以下语法:
    string oradb = “Data Source=OraDb;User Id=hr;Password=hr;”;

  5. 如果想修改连接字符串。如下所示:
    string oradb = “Data Source=(DESCRIPTION=”
    + “(ADDRESS=(PROTOCOL=TCP)(HOST=主机名)(PORT=端口))”
    + “(CONNECT_DATA=(SERVICE_NAME=SID值)));”
    + “User Id=用户名;Password=密码;”;
    通常情况下,连接不同的数据库,主要修改的参数:主机名、端口、SID值、用户名、密码。如果连接数据库失败,首先查看这个五个参数是否正确。

  6. 连接Orcale代码:

 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;

using System.Text;
using System.Windows.Forms;
using Oracle.DataAccess.Client;

namespace WinOra
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                string oradb = "Data Source=(DESCRIPTION=(ADDRESS_LIST="
          + "(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.28)(PORT=1521)))"
          + "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcltc)));"
          + "User Id=JS_ONLINE;Password=rfidtc;";//连接字符串

                OracleConnection conn = new OracleConnection(oradb); 
                conn.Open();//连接

                OracleCommand cmd = new OracleCommand();//command
                cmd.Connection = conn;
                cmd.CommandText =
                     $"select BILL  * from  mtbill where {tbID.Text}";
                cmd.CommandType = CommandType.Text;

                OracleDataReader dr = cmd.ExecuteReader();
                if (dr.Read()) 
                {
                    label1.Text = dr["BILL"].ToString(); ;
                }
                else
                {
                    label1.Text = "bill not found";
                }


                dr.Dispose();
                cmd.Dispose();
                conn.Dispose();

            }
            catch (OracleException ex) 
            {
                switch (ex.Number)
                {
                    case 1:
                        MessageBox.Show("Error attempting to insert duplicate data.");
                        break;
                    case 12545:
                        MessageBox.Show("The database is unavailable.");
                        break;
                    default:
                        MessageBox.Show("Database error:" + ex.Message.ToString());
                        break;
                }
            }
           

        }
    }
}

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值