c# 与 oracle 数据库交互

1.存储过程返回多个查询结果显示在界面上

DataSet dataSet = new DataSet();
            OracleCommand myCm = new OracleCommand();
            OracleConnection conn = new OracleConnection(oracleConnect);
            myCm.Connection = conn;
            myCm.CommandText = "prc_xinwei_data";
            myCm.CommandType = CommandType.StoredProcedure;

            myCm.Parameters.Add("in_barreryCode", OracleType.VarChar, 50);
            myCm.Parameters.Add("cur_out_info", OracleType.Cursor);
            myCm.Parameters.Add("cur_out_cycle", OracleType.Cursor);
            myCm.Parameters.Add("cur_out_statis", OracleType.Cursor);
            myCm.Parameters.Add("cur_out_detail", OracleType.Cursor);
            myCm.Parameters["in_barreryCode"].Direction = ParameterDirection.Input;
            myCm.Parameters["cur_out_info"].Direction = ParameterDirection.Output;
            myCm.Parameters["cur_out_cycle"].Direction = ParameterDirection.Output;
            myCm.Parameters["cur_out_statis"].Direction = ParameterDirection.Output;
            myCm.Parameters["cur_out_detail"].Direction = ParameterDirection.Output;

            myCm.Parameters["in_barreryCode"].Value = batteryCode;

            try
            {
                conn.Open();
                OracleDataAdapter sda = new OracleDataAdapter(myCm);
                DataSet ds = new DataSet("ds");
                sda.Fill(ds);
                return ds;
              
            }
            catch (System.Data.SqlClient.SqlException e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
                myCm.Dispose();
                conn.Close();
            }
            

2.存储过程更新表数据

          OracleParameter[] paras = new OracleParameter[4];
            paras[0] = new OracleParameter("pi_ip", OracleType.VarChar, 20);
            paras[0].Value = IP;
            paras[1] = new OracleParameter("pi_filename", OracleType.VarChar, 20);
            paras[1].Value = fileName;
            paras[2] = new OracleParameter("pi_currentrow", OracleType.Int32);
            paras[2].Value = currentRow;
            paras[3] = new OracleParameter("pi_worktype", OracleType.VarChar, 20);
            paras[3].Value = workType;
            XKOracleDataAccess.ExecuteNonQuery(CommandType.StoredProcedure, "proc_save_filelist", paras);

 

3.SQL语句 执行 

 public static void SaveExceptionLog(string IP, string worktype, string filename, string exception_desc)
        {
            OracleParameter[] paras = {
                                          new OracleParameter(":IP",IP),
                                           new OracleParameter(":worktype",worktype),
                                            new OracleParameter(":filename",filename),
                                             new OracleParameter(":exception_desc",exception_desc),
                                      };
            string sqlSave = @"insert into exception_log
  (fid, ip, worktype, filename, exception_time, exception_desc) 
values(SEQ_EXCEPTION_LOG.NEXTVAL,:IP,:worktype,:filename,sysdate,:exception_desc)";
            XKOracleDataAccess.ExecuteNonQuery(CommandType.Text,sqlSave,paras);
        }

 

posted @ 2018-02-28 09:54  古道子  阅读(1425)  评论(0编辑  收藏  举报