zoukankan      html  css  js  c++  java
  • 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));

     

  • 相关阅读:
    TCP协议-如何保证传输可靠性
    计算机网络基础(未完待续)
    计算机理论基础
    计算机网络
    操作系统与计算机网络
    Linux系统中的vi/vim指令【详解】
    Linux面试笔试题带答案【详解】
    关于梦想(五)
    Jmeter的安装教程【图文】
    关于梦想(四)
  • 原文地址:https://www.cnblogs.com/huangf714/p/5876239.html
Copyright © 2011-2022 走看看