热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

一、关于数据库的操作1.数据库连接有2种:第一种:古老的方法(较为死板,不利于灵活操作),即用OracleConnectio

一、关于数据库的操作

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本身只 ...



推荐阅读
  • 本文介绍了 Oracle SQL 中的集合运算、子查询、数据处理、表的创建与管理等内容。包括查询部门号为10和20的员工信息、使用集合运算、子查询的注意事项、数据插入与删除、表的创建与修改等。 ... [详细]
  • mysql数据库json类型数据,sql server json数据类型
    mysql数据库json类型数据,sql server json数据类型 ... [详细]
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
  • publicclassBindActionextendsActionSupport{privateStringproString;privateStringcitString; ... [详细]
  • 问题场景用Java进行web开发过程当中,当遇到很多很多个字段的实体时,最苦恼的莫过于编辑字段的查看和修改界面,发现2个页面存在很多重复信息,能不能写一遍?有没有轮子用都不如自己造。解决方式笔者根据自 ... [详细]
  • HTML:  将文件拖拽到此区域 ... [详细]
  • flea,frame,db,使用,之 ... [详细]
  • 使用QT构建基础串口辅助工具
    本文详细介绍了如何利用QT框架创建一个简易的串口助手应用程序,包括项目的建立、界面设计与编程实现、运行测试以及最终的应用程序打包。 ... [详细]
  • C# 中创建和执行存储过程的方法
    本文详细介绍了如何使用 C# 创建和调用 SQL Server 存储过程,包括连接数据库、定义命令类型、设置参数等步骤。 ... [详细]
  • 本文介绍了一个使用Spring框架和Quartz调度器实现每周定时调用Web服务获取数据的小项目。通过详细配置Spring XML文件,展示了如何设置定时任务以及解决可能遇到的自动注入问题。 ... [详细]
  • 本文将深入探讨 Unreal Engine 4 (UE4) 中的距离场技术,包括其原理、实现细节以及在渲染中的应用。距离场技术在现代游戏引擎中用于提高光照和阴影的效果,尤其是在处理复杂几何形状时。文章将结合具体代码示例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • spring(22)JdbcTemplate
    2019独角兽企业重金招聘Python工程师标准###1.导入jar包,必须jar包:c3p0、mysql-connector、beans、con ... [详细]
  • 本文介绍如何通过参数化查询来防止SQL注入攻击,确保数据库的安全性。示例代码展示了在C#中使用参数化查询添加学生信息的方法。 ... [详细]
  • RTThread线程间通信
    线程中通信在裸机编程中,经常会使用全局变量进行功能间的通信,如某些功能可能由于一些操作而改变全局变量的值,另一个功能对此全局变量进行读取& ... [详细]
  • CoreData 表关联详解
    在企业中,通常会有多个部门,每个员工隶属于某个部门。这种情况下,员工表和部门表之间就会形成关联关系。本文将详细介绍如何在CoreData中实现表关联,并通过示例代码展示如何添加和查询关联数据。 ... [详细]
author-avatar
Daro_olingke_572
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有