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

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

  1. Oracle数据库字符串连接方法

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

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

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

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

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

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

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

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

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

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

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

  7. Oracle数据库的备份方法

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

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

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

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

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

随机推荐

  1. Jenkins +JUnit

    转载:https://www.cnblogs.com/helloIT/p/5761740.html 1.环境 windows10 专业版 Jenkins 2.7 apache-ant-1.9.6 JD ...

  2. zabbix乱码问题

    Zabbix页面遇到历史记录的乱码需要修改数据库: 解决办法: 1.将 zabbix 数据库中的表备份: 2.手动删除 zabbix 数据库: 3.重新创建 zabbix 库时手动指定字符集为 utf ...

  3. Redis Cluster集群的搭建

    redis集群搭建原理: redis是单线程,但是一般的作为缓存使用的话,redis足够了,因为它的读写速度太快了.   官方的一个简单测试: 测试完成了50个并发执行100000个请求. 设置和获取 ...

  4. 有道单词导入 有道单词 生词本 批量导入 添加 有道单词XML 背单词

        本程序 主要功能: 对有道生词实现批量导入功能   生成有道单词XML的功能,实现快速导入 有了本程序后就可以批量添加生词. 有道生词本 XML模板 分析 word   为单词,可以为一个单词 ...

  5. Solr 缓存配置

    http://www.blogjava.net/xiaohuzi2008/archive/2012/12/03/392376.html

  6. 利用 meta 标签重定向

      页面定期刷新,如果加url的,则会重新定向到指定的网页,content后面跟的是时间(单位秒),把这句话加到指定网页的<head></head>里一般也用在实时性很强的应用 ...

  7. 在Win7中IIS配置Asp.Net虚拟文件夹的方法及错误总结!

    在Win7中IIS配置Asp.Net虚拟文件夹的方法总结! 一.右键[站点].点击[加入虚拟文件夹]或[虚拟应用程序],笔者建议最好建立虚拟应用程序,由于这就跟一个站点差点儿相同.不用考虑路径问题. ...

  8. elasticsearch mapping问题解决

    1.报错信息如下: [--16T00::,][WARN ][logstash.outputs.elasticsearch] Could not index event to Elasticsearch ...

  9. 现在的C语言编辑器里的int范围为什么是-2147483648~2147483647 2014-08-05 10:21 100人阅读 评论(0) 收藏

    下面是引用百度文库的一段话: "这得从二进制的原码说起: 如果以最高位为符号位,二进制原码最大为0111111111111111=215-1=32767 最小为111111111111111 ...

  10. 实现Windows Server 2003多用户远程登录(转载)

    Windows Server 2003默认情况下允许远程终端连接的数量是2个用户,我们可以根据需要适当增加远程连接同时在线的用户数. 单击“开始→运行”,输入“gpedit.msc”打开组策略编辑器窗 ...