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));

时间: 2024-09-30 04:48:06

C#中oracle数据库的连接方法的相关文章

Oracle数据库字符串连接方法

转至:http://database.51cto.com/art/201011/232267.htm 和其他数据库系统类似,Oracle字符串连接使用“||”进行字符串拼接,其使用方式和MSSQLServer中的加号“+”一样. 比如执行下面的SQL语句: SELECT '工号为'||FNumber||'的员工姓名为'||FName FROM T_Employee WHERE FName IS NOT NULL 除了“||”,Oracle还支持使用CONCAT()函数进行字符串拼接,比如执行下面

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

近段时间很多网友提出监听配置相关问题,客户终端(Client)无法连接服务器端(Server).本文现对监听配置作一简单介绍,给出PL/SQL Developer 连接Oracle数据库详细配置方法,并提出一些客户终端无法连接服务器端的解决思路,愿对广大网友与读者有一些帮助. 一.监听器(LISTENER) 监听器是Oracle基于服务器端的一种网络服务,主要用于监听客户端向数据库服务器端提出的连接请求.既然是基于服务器端的服务,那么它也只存在于数据库服务器端,进行监听器的设置也是在数据库服务器

Oracle数据库的备份方法

1.引言 Oracle数据库的备份方法很多,无论使用那种备份方法,备份的目的都是为了在出现故障后能够以尽可能小的时间和代价恢复系统.比如使用export实用程序导出数据库对象.使用Oracle备份数据库.使用Oracle对称复制.使用Oracle并行服务器.使用Oracle冷备份.使用Oracle热备份等各种备份方法都有其优缺点.适用的场合和相应的软硬件要求.本文主要就用export实用程序导出数据库对象.Oracle冷备份.Oracle热备份这三种最基本的备份方法进行详细的探讨,分析各自的优缺

sqoop测试oracle数据库的连接使用

测试oracle数据库的连接使用 ①连接oracle数据库,列出所有的数据库 [[email protected] sqoop]$sqoop list-databases--connect jdbc 10.1.69.173:1521:ORCLBI --username huangq -P或者sqoop list-databases--connect jdbc racle:thin10.1.69.173:1521:ORCLBI --username huangq--password 123456

plsql无法连接64位oracle数据库的解决方法

今儿个重装了个系统,win8 64位.接着装了个64位的oracle11g,oracle11g下载页面:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html,找到适合自己系统的数据库,需要将file1和file2都下载下来,压缩到同一个文件夹下才能进行安装,否则安装不了. 接着用免安装的plsql连接数据库试了试,发现没有连接的权限可选,如图 直接输入用户名.密码和数据库名,提示如下:

plsql无法连接64位oracle数据库的解决方法(图文解说)

oracle11g下载页面:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html,找到适合自己系统的数据库,需要将file1和file2都下载下来,压缩到同一个文件夹下才能进行安装,否则安装不了. 接着用免安装的plsql连接数据库试了试,发现没有连接的权限可选,如图 直接输入用户名.密码和数据库名,提示如下: 说明plsql是不可以直接连接64位oracle数据库,只能连接32位.既

Java基础103 Hibernate技术连接MySQL数据和Oracle数据库的配置方法

1.Hibernate技术连接MySQL数据 User.hbm.xml 配置文件 <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernat

oracle数据库导入导出方法

Oracle Database 10g以后引入了最新的数据泵(Data Dump)技术,使DBA或开发人员可以将数据库元数据(对象定义)和数据快速移动到另一个oracle数据库中. 数据泵导出导入(EXPDP和IMPDP)的作用  1.实现逻辑备份和逻辑恢复.  2.在数据库用户之间移动对象.  3.在数据库之间移动对象  4.实现表空间搬移. 数据泵导出导入与传统导出导入的区别: 在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还

oracle数据库登录连接很慢;kettle连接oracle 报 IO 错误,socket time out 问题解决记录

问题描述: 1:oracle数据库连接登陆时突然变得很慢:sqldeveloper链接数据库很慢: 2:Kettle-spoon etl程序访问数据库,任务执行时报 :数据库连接 IO错误 :Socket Time Out 错误. 解决: 1:lsnrctl status 用命令查看oracle监听状态:命令执行后,过许久才显示结果(正常很快显示): 2:分析是不是监听日志太大了.从上命令的呈现结果中找到日志路径: Listener Parameter File   /u01/app/oracl