c# oracle 数据库连接,C#中oracle数据库的连接方法

一、关于数据库的操作

1.数据库连接

有2种:

第一种:古老的方法(较为死板,不利于灵活操作),即用OracleConnection的类来连接

string

mysqlstr ="user id = xal;data source = xal;password = xal";

OracleConnection mycnn = new OracleConnection(mysqlstr);

mycnn.open();

第二种:新式的方法(使用较为灵活),即利用OracleConnectoinStringBuilder类来连接

OracleConnectionStringBuilder OcnnStrB = new OracleConnectionStringBuilder;

OCnnStrB.DataSource = "xal";

OCnnStrB.UserID = "xal";

OCnnStrB.Password = "xal";

myCnn

= new OracleConnection(OCnnStrB.ConnectionString);

myCnn.open();

2.事务操作

myConn.open();

OracleCommand insertComm = new OracleCommand();

insertComm.Connection = myCnn;

insertComm.Transaction = myCnn.BeginTransaction();

try

{

事务操作语句;

insertComm.Transaction.Commit();

}

catch(exption ex)

{

insertComm.Transaction.Rollback();

MessageBox(ex.Message);

}

finally

{

myConn.close();

}

3.创建命令参数

private OracleParameter

CreateOraParam(string ParamName, object ParamValue)

{

OracleParameter Result = new OracleParameter();

Result.ParameterName = ParamName;

if

(ParamValue != null)

{

Result.Value = ParamValue;

}

else

{

Result.Value = DBNull.Value;

}

return

Result;

}

这样的话,当要对数据库操作时就可以:

insertComm.CommandText = "insert into TESTADODOTNET (ID, NAME, AGE, PIC)

values (:pID, :pName, :pAge, :pPic)";

insertComm.Parameters.Add(CreateOraParam("pID", (txtID.Text.Trim() !=

"") ? txtID.Text.Trim() : null));

insertComm.Parameters.Add(CreateOraParam("pName",

(txtName.Text.Trim() != "") ? txtName.Text.Trim() : null));

insertComm.Parameters.Add(CreateOraParam("pAge", (txtAge.Text.Trim()

!= "") ? txtAge.Text.Trim() : null));

4.数据集的浏览(例:将结果显示在comboBox1中)

OracleDataAdapter oda = new OracleDataAdapter(selectCommand);

DataTable newtable = new DataTable();

oda.Fill(newtable);

foreach (DataRow dr in

newtable.Rows)  //共有newtable.rows.count条记录

{

comboBox1.Items.Add(dr[0].ToString());

}

5.设置输入只能是数字(例:现在往textBox1中输入。如只能输入字母的方法类似)

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)//属性中的事件

{

e.Handled = !((Char.IsNumber(e.KeyChar)) ||

((Keys)e.KeyChar == Keys.Back));

}

6.Form窗口关闭时引发的事件:弹出一个确定退出的对话框

private void form1_FormClosing(object sender, FormClosingEventArgs

e)

{

if

(MessageBox.Show("是否退出系统?", "确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) ==

DialogResult.Yes)

{

e.Cancel = false;

}

else

{

e.Cancel = true;

}

}

7.OracleParameter的用法

第一步:先创建命令参数

private OracleParameter CreateOraParam(string

ParamName, object ParamValue)

{

OracleParameter Result = new OracleParameter();

Result.ParameterName = ParamName;

if

(ParamValue != null)

{

Result.Value = ParamValue;

}

else

{

Result.Value = DBNull.Value;

}

return

Result;

}

第二步:写SQL语句,并调用第一步的参数(例如::pID是个参数,代表调用insertComm.Parameters.Add中的pID的值)

insertComm.CommandText = "insert

into TESTADODOTNET (ID, NAME, AGE, PIC) values (:pID, :pName, :pAge,

:pPic)";

insertComm.Parameters.Add(CreateOraParam("pID",

(txtID.Text.Trim() != "") ? txtID.Text.Trim() : null));

insertComm.Parameters.Add(CreateOraParam("pName", (txtName.Text.Trim()

!= "") ? txtName.Text.Trim() : null));

insertComm.Parameters.Add(CreateOraParam("pAge", (txtAge.Text.Trim()

!= "") ? txtAge.Text.Trim() : null));

第三步:添加pictureBox1图片的二进制流字段pAge

//创建字节数组用于给IMAGE字段赋值,fileLength是指所选的文件的大小

byte[] tmpImage = new

byte[fileLength];

//根据字节数组创建内存流,之后对该流的操作将会影响字节数组的内容

MemoryStream curStream = new

MemoryStream(tmpImage);

//把控件内显示的图形写入到流中,需强制指定格式

pictureBox1.Image.Save(curStream, curImageFormat);//curImageFormat前面指定的图片格式

insertComm.Parameters.Add(CreateOraParam("pPic", tmpImage));

Oracle数据库字符串连接方法

转至:http://database.51cto.com/art/201011/232267.htm 和其他数据库系统类似,Oracle字符串连接使用“||”进行字符串拼接,其使用方式和MSSQLSe ...

PL/SQL Developer 连接Oracle数据库详细配置方法

PL/SQL Developer 连接Oracle数据库详细配置方法 近段时间很多网友提出监听配置相关问题,客户终端(Client)无法连接服务器端(Server).本文现对监听配置作一简单介绍,给出 ...

转载“启动\关闭Oracle数据库的多种方法”--来自百度#Oracle

启动\关闭Oracle数据库的多种方法 启动和关闭oracle有很多种方法. 这里只给出3种方法: l         Sql*plus l         OEM控制台 l         Wind ...

Java与SQL Server, MySql, Oracle, Access的连接方法以及一些异常解决

Java与SQL Server, MySql, Oracle, Access的连接方法以及一些异常解决 I. 概述 1.1 JDBC概念 JDBC(Java Database Connectivity ...

ADO访问Oracle数据库,连接异常(Unknown error 0x800a0e7a)

ADO访问Oracle数据库,连接异常(Unknown error 0x800a0e7a) 代码如下:执行Open过程中出现异常,信息为Unknown error 0x800a0e7a  C++ Co ...

重装系统后ORACLE数据库恢复的方法

如果我们的操作系统出现问题,重装系统后,ORACLE数据库应该如何恢复呢?下文就为您列举了两个重装系统后ORACLE数据库恢复的方法,供您参考. ORACLE数据库恢复的方法我们经常会用到,下面就为您 ...

Oracle数据库的备份方法

1.引言 Oracle数据库的备份方法很多,无论使用那种备份方法,备份的目的都是为了在出现故障后能够以尽可能小的时间和代价恢复系统.比如使用export实用程序导出数据库对象.使用Oracle备份数据 ...

总结 vb与数据库的连接方法

总结 vb与数据库的连接方法 分类:vb数据库 (4672)  (38)  举报  收藏 总结:vb与数据库连接方式,两种分法. 根据是否使用ODBC(驱动程序)来分: 1.有源连接 2.无源连接. ...

Qt 中 Oracle 数据库 QOCI 驱动问题及解决

Qt 中 Oracle 数据库 QOCI 驱动问题及解决是本文要讲述的问题,用Qt开发Oracle程序时,常会遇到QOCI驱动问题,主要表现为程序运行时出现下面的错误. QOCI driver not ...

随机推荐

ListView 重设Adapter后的动作,remove/add ListView 的动作

Adapter adapter1 //设置adapter1,会创建屏幕可见多个的ItemView ListView.setAdapter(adapter1); //设置adapter为null,则上面 ...

WPF 面试题及答案(三)

一 · 路由事件的三种方式/策略(冒泡 直接 隧道) WPF中的路由事件是沿着VisualTree传递的,作用是用来调用应用程序的元素树上的各种监听器上的处理程序. (1)冒泡,这种事件处理方式是从源 ...

DBLINK的session无法关闭,报异常!

------解决方法-------------------------------------------------------- --ALTER SESSION alter session clo ...

Cache的Add之委托解说

正文 想了想还是写了吧,虽然知识含量比较低..... 获取数据放到缓存中,自己用Add添加的结果老是报参数错误,我擦咧,自己还总感觉是委托的问题.              call.Invoke(& ...

初见Javascript

1.HTML 中的脚本必须位于 标签之间. 脚本可被放置在 HTML 页面的

和 ...

MUI点击事件获取当前对象,及当前对象的属性值

//用惯了jquery,开始用mui还是有些不习惯 //直接贴代码吧

vuex使用一

至于为什么使用vuex在这里就不过多的解释了,直接进入正题 1.vuex的安装 cnpm install vuex -S 2.然后在main.js中引入 import Vue from 'vue' i ...

Docker小白从零入门到实战系列【二】

1.安装好Centos 7 2.关闭SELINUX sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/configsetenfo ...

Mycat读写分离、主从切换学习(转)

http://blog.csdn.net/zhanglei_16/article/details/50707487 Mycat读写分离.主从切换学习问题一:分表.分库的优缺点,以及分表无法成为主流分表 ...

OpenGL 阴影之Shadow Mapping和Shadow Volumes

先说下开发环境.VS2013,C++空项目,引用glut,glew.glut包含基本窗口操作,免去我们自己新建win32窗口一些操作.glew使我们能使用最新opengl的API,因winodw本身只 ...

参与评论 您还未登录,请先 登录 后发表或查看评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值