一、关于数据库的操作
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));

转载于:https://www.cnblogs.com/salonliudong/archive/2006/12/04/582107.html

C#中oracle数据库的连接方法相关推荐

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

    一.关于数据库的操作 1.数据库连接 有2种: 第一种:古老的方法(较为死板,不利于灵活操作),即用OracleConnection的类来连接 string mysqlstr ="user ...

  2. ts连接mysql数据库_各种数据库的连接方法

    一.JDBC连接各种数据库 1.Oracle8/8i/9i数据库(thin模式) Class.forName("oracle.jdbc.driver.OracleDriver"). ...

  3. 删除oracle数据库的三种方法,oracle数据库的删除方法详解

    oracle数据库的删除方法详解 1.图形界面删除 练习之前记得创建快照 执行命令之前要保证数据库属于open状态 SQL> alter database open; [oracle@local ...

  4. arcgis读取oracle数据库,arcgis连接Oracle数据库

    arcgis连接Oracle数据库 配置声明:本人的电脑是win10 64位,安装的Oracle是oracleR11gr2 64  arcgis版本位10.2 安装是在同一台电脑上. 一.首先是安装O ...

  5. ftp无法与服务器建立连接_建立与Oracle数据库服务器连接的两种连接模式

    建立与Oracle数据库服务器连接的两种连接模式(专用服务器与共享服务器) 在建立Oracle数据库的时候,应该会在数据库建立助手向导上面看到这么一个选项,就是数据库的连接模式采用什么方式.在Orac ...

  6. matlab连接mysql教程视频_Matlab建立到Oracle数据库的连接

    Linux下的配置过程和Windows一样,如下:1.将Oracle JDBC的JAR包拷贝到Matlab的相关目录(..\matlab\java\jar\toolbox\)下. 一.Matlab通过 ...

  7. Linux系统中Oracle数据库使用SELECT语句检索数据(1)实例应用

    Linux系统中Oracle数据库使用SELECT语句检索数据(1)实例应用 1,首先切换到Oracle用户,并进入数据库#sql / as sysdba2,启动数据库,并连接样例及表格,启动命令#s ...

  8. oracle数据库导出数据6,Oracle数据库导入导出方法汇总

    Oracle数据库导入导出方法: 1.使用命令行: 数据导出: 1.将数据库TEST完全导出,用户名system密码manager导出到D:\daochu.dmp中 exp system/manage ...

  9. ORACLE数据库常见问题诊断方法 ---(常见错误篇)

    ORACLE数据库常见问题诊断方法 ---(常见错误篇) 1       ORA-12571.ORA-03113.ORA-03114.ORA-01041 特征:客户端(代理或应用服务器)有时报这类断连 ...

最新文章

  1. 【数据结构】图的深度优先遍历 广度优先遍历
  2. spoj Find Log
  3. 必须去收藏14个响应式布局的前端开发框架
  4. 京东商城pop开放平台产品经理
  5. Spark Standalone模式应用程序开发
  6. 这些Python代码技巧,你肯定还不知道
  7. 北京环球影城上线王者荣耀英雄主题活动
  8. python相对路径import 方法_Python 从相对路径下import的方法
  9. 第11章 享元模式(Flyweight Pattern)
  10. oracle零碎要点---oracle em的web访问地址忘了
  11. 数论 + 公式 - HDU 4335 What is N?
  12. [洛谷P3807]【模板】卢卡斯定理
  13. DB2数据库关于delete in id和batch delete的性能对比
  14. 监督分类空白处也被分类了_如何兼容自训练与预训练:更高效的半监督文本分类模型...
  15. 少谈设计模式,多谈基本功
  16. 20个最强的基于浏览器的在线代码编辑器
  17. matlab2014a VS2010混合编程
  18. 国家统计局统计用区划代码和城乡划分代码---爬虫、详细分析
  19. DiffPDF(pdf文件比较工具)官方正式版V6.0.0 | diffpdf如何使用 | 含diffpdf的软件安装教程
  20. SAP报表导出格式设置

热门文章

  1. 云南计算机一级没有开考吗,2020年3月云南计算机一级考试时间
  2. unity循环滚动列表_【unity游戏开发】LoopScrollRect组件
  3. boost::function和boost:bind取代虚函数
  4. java二进制反转_Java实现 LeetCode 190 颠倒二进制位
  5. 同一条sql insert 有时快有时慢 引发的血案
  6. 不满俄欧“北溪-2”项目 美驻德大使威胁制裁德国企业
  7. 微软更懂“怎样尊重程序员”,正在改进程序员招聘流程
  8. commons-csv 使用记叙
  9. Aptana Studio 3 汉化简体中文版
  10. 如何使用Photoshop制作真实的尺子