ODP.Net基础应用——连接数据库、查询数据

ODP.Net基础应用——连接数据库、查询数据

  • 连接数据库
  • 测试表的结构
  • 查询多行数据
  • 查询单个标量数据
  • 处理NULL值
  • 将数据写入Dataset
  • 替代变量

连接数据库

使用OracleConnection类

OracleConnection _conn = new OracleConnection();
_conn.ConnectionString = "User Id=****;Password=****;" +
              "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=***)(PORT=1521))" +
              "(CONNECT_DATA=(SID=***)))";
try
{
    _conn.Open();
    MessageBox.Show("Connection successful");
    _conn.Close();
    _conn.Dispose();
    _conn = null;
}
catch (Exception ex)
{
    MessageBox.Show(ex.ToString(), "Error connecting to Oracle");
}

测试表的结构

CREATE TABLE PRODUCTS (
ID VARCHAR2(10), 
NAME VARCHAR2(255), 
PRICE NUMBER(10,2), 
REMARKS VARCHAR2(4000),
CONSTRAINT PK PRIMARY KEY (ID)
);

查询多行数据

使用OracleDataReader类

OracleCommand _cmd = _conn.CreateCommand();
_cmd.CommandText = "SELECT * FROM PRODUCTS";
OracleDataReader _orcReader = _cmd.ExecuteReader();
if(_orcReader.HasRows)
{
      while(_orcReader.Read())
      {
          Console.WriteLine(_orcReader.GetString(_orcReader.GetOrdinal("ID")) + "  "+
              _orcReader.GetString(_orcReader.GetOrdinal("NAME")) + "  " + 
              _orcReader.GetDecimal(_orcReader.GetOrdinal("PRICE")) + "  " +
              _orcReader.GetString(_orcReader.GetOrdinal("REMARKS")));
       }
}

处理NULL值

if(_orcReader.HasRows)
{
      while(_orcReader.Read())
      {
          if(_orcReader.IsDBNull(_orcReader.GetOrdinal("PRICE")))
              Console.WriteLine(_orcReader.GetString(_orcReader.GetOrdinal("PRICE")));
       }
}

查询单个标量数据

OracleCommand _cmd = _conn.CreateCommand();
_cmd.CommandText = "SELECT SUM(PRICE) AS TotalPrice FROM PRODUCTS";
decimal _totalPrice = (decimal)_cmd.ExecuteScalar();
Console.WriteLine(_totalPrice);

将数据写入Dataset

private DataSet ds = null;

private void BTN_conn_Click(object sender, EventArgs e)
{
    OracleConnection _conn = new OracleConnection();
    _conn.ConnectionString = "User Id=****;Password=****;" +
              "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=***)(PORT=1521))" +
              "(CONNECT_DATA=(SID=***)))";
    try
    {
        _conn.Open();
        ds = new DataSet();
        string _sqlString = "SELECT * FROM PRODUCTS";
        OracleDataAdapter _dataAdapt = new OracleDataAdapter(_sqlString, _conn);
        _dataAdapt.Fill(ds);//数据填充
        _conn.Close();
        _conn.Dispose();
        _conn = null;
        f_DataGridView.DataSource = ds.Tables[0];
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.ToString(), "Error connecting to Oracle");
    }
}

这里写图片描述

替代变量

_conn.Open();
ds = new DataSet();
string _sqlString = "SELECT * FROM PRODUCTS WHERE ID=:IDValue";
OracleCommand _cmd = new OracleCommand(_sqlString, _conn);

OracleParameter _para = _cmd.CreateParameter();
_para.ParameterName = "IDValue";
_para.OracleDbType = OracleDbType.Varchar2;
_para.Value = TBX_ID.Text;
_cmd.Parameters.Add(_para);

OracleDataAdapter _dataAdapt = new OracleDataAdapter(_cmd);
_dataAdapt.Fill(ds);//数据填充
_conn.Close();
_conn.Dispose();
_conn = null;
f_DataGridView.DataSource = ds.Tables[0];
f_DataGridView.Rows[0].Selected = false;

替代变量


[1]: Pro ODP.NET FOR Oracle Database 11g,Edmund Zehoo.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值