• .net中DBHelper(Oracle版)


     上篇说的是操作的sqlServer版,因为现在公司需要用的是Oracle数据,之前没弄过,通过网上查加自己的一些实际验证贴上来,主要是方便自己查看使用,同时也希望帮到有需要的朋友;

     以下是配置文件的连接串,前提是确定你的oracle配置好

    <connectionStrings>
    <!--Oracle 连接串-->
    <add name="oracleconn" connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=ORCL)));User ID=scott;Password=tiger;Unicode=True" providerName="System.Data.OracleClient"/>
    </connectionStrings>
    <appSettings>

    这个命名空间是必要的  using System.Data.OracleClient; 生打出来是没有的,需要引用添加上,就可以智能提示出来了

    public class DBOracleHelper
    {
    public static OracleCommand cmd = null;
    public static OracleConnection conn = null;
    public static string connstr = ConfigurationManager.ConnectionStrings["oracleconn"].ConnectionString;
    public DBOracleHelper()
    {}
    #region 建立数据库连接对象
    /// <summary>
    /// 建立数据库连接
    /// </summary>
    /// <returns>返回一个数据库的连接OracleConnection对象</returns>
    public static OracleConnection init()
    {
    try
    {
    conn = new OracleConnection(connstr);
    if (conn.State != ConnectionState.Open)
    {
    conn.Open();
    }
    }
    catch (Exception e)
    {
    throw new Exception(e.Message.ToString());
    }
    return conn;
    }
    #endregion

    #region 设置OracleCommand对象
    /// <summary>
    /// 设置OracleCommand对象
    /// </summary>
    /// <param name="cmd">OracleCommand对象 </param>
    /// <param name="cmdText">命令文本</param>
    /// <param name="cmdType">命令类型</param>
    /// <param name="cmdParms">参数集合</param>
    private static void SetCommand(OracleCommand cmd,string cmdText, CommandType cmdType, OracleParameter[] cmdParms)
    {
    cmd.Connection = conn;
    cmd.CommandText = cmdText;
    cmd.CommandType = cmdType;
    if (cmdParms != null)
    {
    cmd.Parameters.AddRange(cmdParms);
    }
    }
    #endregion

    #region 执行相应的sql语句,返回相应的DataSet对象
    /// <summary>
    /// 执行相应的sql语句,返回相应的DataSet对象
    /// </summary>
    /// <param name="sqlstr">sql语句</param>
    /// <returns>返回相应的DataSet对象</returns>
    public static DataSet GetDataSet(string sqlstr)
    {
    DataSet set = new DataSet();
    try
    {
    init();
    OracleDataAdapter adp = new OracleDataAdapter(sqlstr, conn);
    adp.Fill(set);
    conn.Close();
    }
    catch (Exception e)
    {
    throw new Exception(e.Message.ToString());
    }
    return set;
    }
    #endregion

    #region 执行相应的sql语句,返回相应的DataSet对象
    /// <summary>
    /// 执行相应的sql语句,返回相应的DataSet对象
    /// </summary>
    /// <param name="sqlstr">sql语句</param>
    /// <param name="tableName">表名</param>
    /// <returns>返回相应的DataSet对象</returns>
    public static DataSet GetDataSet(string sqlstr,string tableName)
    {
    DataSet set = new DataSet();
    try
    {
    init();
    OracleDataAdapter adp = new OracleDataAdapter(sqlstr, conn);
    adp.Fill(set,tableName);
    conn.Close();
    }
    catch (Exception e)
    {
    throw new Exception(e.Message.ToString());
    }
    return set;
    }
    #endregion

    #region 执行不带参数sql语句,返回所影响的行数
    /// <summary>
    /// 执行不带参数sql语句,返回所影响的行数
    /// </summary>
    /// <param name="cmdstr">增,删,改sql语句</param>
    /// <returns>返回所影响的行数</returns>
    public static int ExecuteNonQuery(string cmdText)
    {
    int count;
    try
    {
    init();
    cmd = new OracleCommand(cmdText, conn);
    count = cmd.ExecuteNonQuery();
    conn.Close();
    }
    catch (Exception ex)
    {
    throw new Exception(ex.Message.ToString());
    }
    return count;
    }
    #endregion

    #region 执行带参数sql语句或存储过程,返回所影响的行数
    /// <summary>
    /// 执行带参数sql语句或存储过程,返回所影响的行数
    /// </summary>
    /// <param name="cmdText">带参数的sql语句和存储过程名</param>
    /// <param name="cmdType">命令类型</param>
    /// <param name="cmdParms">参数集合</param>
    /// <returns>返回所影响的行数</returns>
    public static int ExecuteNonQuery(string cmdText, CommandType cmdType, OracleParameter[] cmdParms)
    {
    int count;
    try
    {
    init();
    cmd = new OracleCommand();
    SetCommand(cmd, cmdText, cmdType, cmdParms);
    count = cmd.ExecuteNonQuery();
    cmd.Parameters.Clear();
    conn.Close();
    }
    catch (Exception ex)
    {
    throw new Exception(ex.Message.ToString());
    }
    return count;
    }
    #endregion

    #region 执行不带参数sql语句,返回一个从数据源读取数据的OracleDataReader对象
    /// <summary>
    /// 执行不带参数sql语句,返回一个从数据源读取数据的OracleDataReader对象
    /// </summary>
    /// <param name="cmdstr">相应的sql语句</param>
    /// <returns>返回一个从数据源读取数据的OracleDataReader对象</returns>
    public static OracleDataReader ExecuteReader(string cmdText)
    {
    OracleDataReader reader;
    try
    {
    init();
    cmd = new OracleCommand(cmdText, conn);
    reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);

    }
    catch (Exception ex)
    {
    throw new Exception(ex.Message.ToString());
    }
    return reader;
    }
    #endregion

    #region 执行带参数的sql语句或存储过程,返回一个从数据源读取数据的OracleDataReader对象
    /// <summary>
    /// 执行带参数的sql语句或存储过程,返回一个从数据源读取数据的OracleDataReader对象
    /// </summary>
    /// <param name="cmdText">sql语句或存储过程名</param>
    /// <param name="cmdType">命令类型</param>
    /// <param name="cmdParms">参数集合</param>
    /// <returns>返回一个从数据源读取数据的OracleDataReader对象</returns>
    public static OracleDataReader ExecuteReader(string cmdText, CommandType cmdType, OracleParameter[] cmdParms)
    {
    OracleDataReader reader;
    try
    {
    init();
    cmd = new OracleCommand();
    SetCommand(cmd, cmdText, cmdType, cmdParms);
    reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
    }
    catch (Exception ex)
    {
    throw new Exception(ex.Message.ToString());
    }
    return reader;
    }
    #endregion

    #region 执行不带参数sql语句,返回结果集首行首列的值object
    /// <summary>
    /// 执行不带参数sql语句,返回结果集首行首列的值object
    /// </summary>
    /// <param name="cmdstr">相应的sql语句</param>
    /// <returns>返回结果集首行首列的值object</returns>
    public static object ExecuteScalar(string cmdText)
    {
    object obj;
    try
    {
    init();
    cmd = new OracleCommand(cmdText, conn);
    obj = cmd.ExecuteScalar();
    conn.Close();
    }
    catch (Exception ex)
    {
    throw new Exception(ex.Message.ToString());
    }
    return obj;
    }
    #endregion

    #region 执行带参数sql语句或存储过程,返回结果集首行首列的值object
    /// <summary>
    /// 执行带参数sql语句或存储过程,返回结果集首行首列的值object
    /// </summary>
    /// <param name="cmdText">sql语句或存储过程名</param>
    /// <param name="cmdType">命令类型</param>
    /// <param name="cmdParms">返回结果集首行首列的值object</param>
    /// <returns></returns>
    public static object ExecuteScalar(string cmdText, CommandType cmdType, OracleParameter[] cmdParms)
    {
    object obj;
    try
    {
    init();
    cmd = new OracleCommand();
    SetCommand(cmd, cmdText, cmdType, cmdParms);
    obj = cmd.ExecuteScalar();
    conn.Close();
    }
    catch (Exception ex)
    {
    throw new Exception(ex.Message.ToString());
    }
    return obj;
    }
    #endregion



    }

  • 相关阅读:
    使非标准 Win32 控件或自画控件也具有 Windows XP 的界面风格
    MapInfo格式到ArcInfo格式的转换
    DICOM医学图像文件格式
    香港身份证
    Cheap Tricks: Let's Talk About METADATA TypeLibs
    ASP中使用ADO访问数据源
    DirectX 9 编程 DirectX窗口
    3DES Source Code
    OLEDB Resource(Session) Pooling (在Ado开发中使用连接池)
    《仙剑奇侠传4》仙剑问答全答案
  • 原文地址:https://www.cnblogs.com/gyjjyg/p/6811377.html
Copyright © 2020-2023  润新知