yushff

code the world。

导航

我自己用的oracle通用类

Posted on 2009-12-22 19:39  yushff  阅读(419)  评论(0编辑  收藏  举报

首先在web.config文件中添加

 <appSettings>
  <add key="Oracle" value="Data Source=****;user=*****;password=*****;"/>
 </appSettings>

然后把一下的代码考到一个空的cs中文件中,就能用了。

 

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OracleClient;//必须添加
using System.IO;
using System.Text;


using System.Web.SessionState;


/// <summary>
/// ClsOracleDB 的摘要说明  使用中
/// </summary>
public class ClsOracleDB
{
    //用OracleConnection连接Oracle
    public System.Data.OracleClient.OracleConnection cnn;

    public string Connstr
    {
        get
        {
            return System.Configuration.ConfigurationSettings.AppSettings["Oracle"];
        }
    }

  /// <summary>
  /// 打开数据库连接
  /// </summary>
    public void Open()
  {
        cnn=new OracleConnection(System.Configuration.ConfigurationSettings.AppSettings["Oracle"]);
      cnn.Open();
  }

 

    /// <summary>
  /// 打开数据库连接,返回cnn
  /// </summary>
  public OracleConnection OpenCnn()
  {
      cnn=new OracleConnection(System.Configuration.ConfigurationSettings.AppSettings["Oracle"]);
    cnn.Open();
    return(cnn);
  }

    /// <summary>
  /// 关闭数据库连接
  /// </summary>
  public void Close()
  {
      cnn.Close();
  }

    /// <summary>
  /// 返回DataSet
  /// </summary>
  /// <param name="CmdString"></param>
  /// <param name="TableName"></param>
  /// <returns></returns>
  public DataSet GetDataSet(string CmdString,string TableName)
  {
      Open();
    OracleDataAdapter myDa =new OracleDataAdapter();
    myDa.SelectCommand = new OracleCommand(CmdString,cnn);
    DataSet myDs =new DataSet();
    myDa.Fill(myDs,TableName);
    Close();
    return myDs;
  }

    /// <summary>
  /// 返回OleDbDataReader
  /// </summary>
  /// <param name="CmdString"></param>
  /// <returns></returns>
  public OracleDataReader GetDataReader(string CmdString)
  {
      Open();
    OracleCommand myCmd =new OracleCommand(CmdString,cnn);
    OracleDataReader myDr =myCmd.ExecuteReader();
    return myDr;
  }

    /// <summary>
    /// 返回影响数据库的行数  更新数据库数据
  /// </summary>
  /// <param name="CmdString"></param>
  /// <returns></returns>
  public int ExecuteSQL(string CmdString)
  {
      Open();
    OracleCommand myCmd =new OracleCommand(CmdString,cnn);
    int Cmd =myCmd.ExecuteNonQuery();
    Close();
    return Cmd;
  }

    /// <summary>
  /// 邦定DroDownList
  /// </summary>
  /// <param name="DroDList"></param>控件名
  /// <param name="sql"></param>连接字符串
  /// <param name="TableName"></param>表名
  /// <param name="DataTextFd"></param>提供文本内容的数据源字段
  /// <param name="DataValueFd"></param>为列表项提供值的数据源字段
    public void DroList(DropDownList DroDList, string sql, string TableName, string DataTextFd, string DataValueFd)
    {
        Open();
        OracleDataAdapter myDa = new OracleDataAdapter(sql, cnn);
        myDa.SelectCommand.CommandType = CommandType.Text;
        DataSet myDs = new DataSet();
        try
        {
            myDa.Fill(myDs, TableName);
            DroDList.DataSource = myDs.Tables[TableName];
            DroDList.DataTextField = DataTextFd;
            DroDList.DataValueField = DataValueFd;
            DroDList.DataBind();
        }
        catch (System.Exception e)
        {
            //Response.Write(e.Message);
            LeeGunn.Web.UI.MessageBox.MessageBox.Show(e.Message);
        }
        finally
        {
            Close();
        }
    }

    //可以用了
    public void SavePic()
    {
        string WarnGradeName;
        int i;
        string TmpdirPath;
        TmpdirPath = "\\" + "file" + "\\" + "warnicon";
       
        // WarnGradeName = HttpContext.Current.Server.MapPath(System.Web.HttpContext.Current.Request.ApplicationPath);

        string sqlstr;

        DataSet myallds = new DataSet();
        string tablename;
        tablename = "WARNMETEDIS";

        sqlstr = "SELECT ID,WARNNAME FROM WARNMETEDIS ORDER BY WARNNAME";
        i = 1;

        myallds = GetDataSet(sqlstr, tablename);

        if (myallds.Tables[0].Rows.Count >= 1)
        {
            for (i = 0; i < myallds.Tables[0].Rows.Count; i ++ )
            {
                WarnGradeName = myallds.Tables[0].Rows[i][1].ToString();
                string[] photos = System.IO.Directory.GetFiles(HttpContext.Current.Server.MapPath(System.Web.HttpContext.Current.Request.ApplicationPath) + TmpdirPath, WarnGradeName + ".jpg");

                if (photos[0].Trim() != "")
                {
                    StringBuilder sbSQL = new StringBuilder("UPDATE WARNMETEDIS SET WARNICON = :WARNICON11 WHERE WARNNAME='" + WarnGradeName + "'");

                    OracleConnection cn = new OracleConnection(System.Configuration.ConfigurationSettings.AppSettings["Oracle"]);
                    OracleCommand cmd = cn.CreateCommand();
                    cmd.CommandText = sbSQL.ToString();

                    FileStream fs;
                    fs =File.OpenRead(photos[0]);
                    int lentth;
                    byte[] pic = new byte[fs.Length];
                    lentth = Convert.ToInt32(fs.Length);
                    fs.Read(pic, 0, lentth);
                    fs.Close();

                    cmd.Parameters.Add(":WARNICON11", OracleType.Blob).Value = pic;
                    try
                    {
                        cn.Open();
                        cmd.ExecuteNonQuery();
                    }
                    catch (Exception ex)
                    {
                        //Response.Write(ex.Message);
                        LeeGunn.Web.UI.MessageBox.MessageBox.Show(ex.Message);
                    }
                    finally
                    {
                        cn.Close();
                    }
                }
                else
                {
                    LeeGunn.Web.UI.MessageBox.MessageBox.Show("没有数据");
                }
            }
        }
    }

    //public

 

    #region 参考存取图片代码

    #region 创建的数据表
    // CREATE TABLE TEST_TABLE
    //(
    //   ID     VARCHAR2(36 BYTE),
    //   NAME   VARCHAR2(50 BYTE),
    //   PHOTO  BLOB
    //)
    #endregion

    //保存图片到数据库
    private void CankaoSavePic()
    {
        //StringBuilder sbSQL = new StringBuilder("insert into Test_Table(ID,Name,Photo) values(:ID,:Name,:Photo)");
        //OracleConnection cn = new OracleConnection(strCn);
        //OracleCommand cmd = cn.CreateCommand();
        //cmd.CommandText = sbSQL.ToString();
        //cmd.Parameters.Add(":ID", OracleType.VarChar, 36).Value = Guid.NewGuid().ToString();
        //cmd.Parameters.Add(":Name", OracleType.VarChar, 50).Value = fileUp.FileName; ;
        //int intLen = fileUp.PostedFile.ContentLength;
        //byte[] pic = new byte[intLen];
        //fileUp.PostedFile.InputStream.Read(pic, 0, intLen);
        //cmd.Parameters.Add(":Photo", OracleType.Blob).Value = pic;
        //try
        //{
        //    cn.Open();
        //    cmd.ExecuteNonQuery();
        //}
        //catch (Exception ex)
        //{
        //    Response.Write(ex.Message);
        //}
        //finally
        //{
        //    cn.Close();
        //}
    }

    //从数据库中读取图片
    private void CankaoReadPic()
    {
       // OracleConnection cn = new OracleConnection(strCn);
       // OracleCommand cmd = cn.CreateCommand();
       // cmd.CommandText = "select photo from test_table";
       // try
       // {
       //     cn.Open();
       //     MemoryStream stream = new MemoryStream();
       //     IDataReader reader = cmd.ExecuteReader();
       //     if (reader.Read())
       //     {

       //         byte[] pic = (byte[])reader[0];
       //         //byte[] pic = (byte[])cmd.ExecuteScalar();
       //         stream.Write(pic, 0, pic.Length);
       //         //Bitmap bitMap = new Bitmap(stream);
       //         //Response.ContentType = "image/Jpeg";
       //         //bitMap.Save(Response.OutputStream, ImageFormat.Jpeg);
       //         //注释部分可以将图片显示在IE中,而不是下载图片,
       //         //下面的方法直接下载文件 
       //         Response.ContentType = "application/octet-stream";
       //         Response.AddHeader("Content-Disposition", "attachment;FileName= demo.JPG");
       //         Response.BinaryWrite(pic);
       //         Response.End();
       //     }
       // }
       // catch (Exception ex)
       //{
       //     Response.Write(ex.Message);
       //}
       //finally
       //{
       //     cn.Close();
       //}
   }
    #endregion


   public ClsOracleDB()
 {
  //
  // TODO: 在此处添加构造函数逻辑
  //
 }
}