• C#:数据库操作(待补充)


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data.OleDb;
    using System.Data;
    using System.Windows.Forms;
    
    namespace MyCommanHelper
    {
        public class DataBaseHelper
        {
    
        #region 字段变量
    
            public static volatile string Connstring = "";
            private static volatile OleDbConnection connection = null;
    
        #endregion
    
        #region 方法
    
            #region Access
    
            // Methods
            /// <summary>
            /// 获取Access2003连接字符串
            /// </summary>
            /// <param name="sFilePath">Access文件路径</param>
            /// <returns></returns>
            public static string GetAccess2003ConnectionString(string sFilePath)
            {
                return ("Provider=Microsoft.JET.OLEDB.4.0;data source=" + sFilePath);
            }
    
            /// <summary>
            /// 获取Access2007连接字符串
            /// </summary>
            /// <param name="sFilePath">Access文件路径</param>
            /// <returns></returns>
            public static string GetAccess2007ConnectionString(string sFilePath)
            {
                return ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + sFilePath);
            }
    
            #endregion
    
            #region SqlServer
    
            #endregion
    
            #region Oracle
            public static string GetOracleBlobConnectionString(string sUser, string sPassword, string sServiceName)
            {
                return ("server=oratest;Data Source=" + sServiceName + ";User ID=" + sUser + ";Password=" + sPassword);
            }
    
            public static string GetOracleConnectionString(string sUser, string sPassword, string sServiceName)
            {
                return ("Provider=OraOLEDB.Oracle.1;Data Source=" + sServiceName + ";User ID=" + sUser + ";Password=" + sPassword);
            }
    
            #endregion
    
            #region 公共
    
            /// <summary>
            /// 初始化新实例
            /// </summary>
            /// <returns></returns>
            public static bool Init()
            {
                try
                {
                    connection = new OleDbConnection(Connstring);
                    return true;
                }
                catch (Exception)
                {
                    return false;
                }
            }
    
            /// <summary>
            /// 执行非查询操作
            /// </summary>
            /// <param name="sqlStr">执行SQL语句</param>
            /// <returns>返回影响行数,值为-1 表示未创建连接实例或执行语句错误</returns>
            public static int ExecNonQuery(string sqlStr)
            {
                int rslt = -1;
    
                if (null == connection)
                {
                    MessageBox.Show("无连接实例!");
                    return rslt;
                }
    
                try
                {
                    if (connection.State == ConnectionState.Closed)
                    {
                        connection.Open();
                    }
                    OleDbCommand command = new OleDbCommand(sqlStr, connection);
                    rslt = command.ExecuteNonQuery();
                    command.Dispose();
                    //connection.Close();
                    //connection.Dispose();
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    connection.Close();
                }
                return rslt;
            }
    
            /// <summary>
            /// 获取只包含指定的数据的数据集
            /// </summary>
            /// <param name="sqlStr">Sql指令</param>
            /// <param name="sTable">指定数据</param>
            /// <returns>数据集 值为null 表示未创建连接实例</returns>
            public static DataSet ExecQuery(string sqlStr, string sTable)
            {
                DataSet set2 = null;
                if (null == connection)
                {
                    MessageBox.Show("无连接实例!");
                    return set2;
                }
    
                try
                {
                    if (connection.State == ConnectionState.Closed)
                    {
                        connection.Open();
                    }
                    OleDbDataAdapter adapter = new OleDbDataAdapter(sqlStr, connection);
                    DataSet dataSet = new DataSet();
                    if (dataSet.Tables.Contains(sTable))
                    {
                        dataSet.Tables[sTable].Clear();
                    }
                    adapter.Fill(dataSet, sTable);
                    set2 = dataSet;
                }
                catch (Exception exception)
                {
                    throw exception;
                }
                finally
                {
                    connection.Close();
                    //connection.Dispose();
                    //connection = null;
                }
                return set2;
            }
    
            /// <summary>
            /// 获得第一行数据
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="sTable"></param>
            /// <returns></returns>
            public static DataRow GetFirstRow(string sql, string sTable)
            {
                DataRow row = null;
                DataSet set = ExecQuery(sql, sTable);
                if (set.Tables[sTable].Rows.Count > 0)
                {
                    row = set.Tables[sTable].Rows[0];
                }
                return row;
            }
    
            /// <summary>
            /// 获得第一行第一个字段的值
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="sTable"></param>
            /// <returns></returns>
            public static string GetFirstFieldValue(string sql, string sTable)
            {
                string str = "";
                DataSet set = ExecQuery(sql, sTable);
                if (set.Tables[sTable].Rows.Count > 0)
                {
                    DataRow row = set.Tables[sTable].Rows[0];
                    str = row[0].ToString();
                }
                return str;
            }
    
            /// <summary>
            /// 释放连接资源
            /// </summary>
            public static void Dispose()
            {
                if (null != connection)
                {
                    if (connection.State != ConnectionState.Closed)
                    {
                        connection.Close();
                    }
                    connection.Dispose();
                    connection = null;
                }
            }
    
            #endregion
    
        #endregion
    
        }
    }
    
  • 相关阅读:
    万恶的"unrecognized selector sent to instance"颤抖吧
    QT 中 QGLWidget 不能够嵌入到 QGraphicsView 中及解决方案
    程序代码里的幽默精神
    objectivec 中如何使用 c++?
    基于FPGA的跨时钟域信号处理——同步设计的重要
    亚稳态
    行为级和RTL级的区别
    FPGA同步复位,异步复位以及异步复位同步释放实例分析
    基于FPGA的跨时钟域信号处理——专用握手信号
    FPGA中亚稳态——让你无处可逃
  • 原文地址:https://www.cnblogs.com/shenchao/p/3673234.html
Copyright © 2020-2023  润新知