zoukankan      html  css  js  c++  java
  • 我也贴一个 MSSQL 的数据访问类

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Configuration;
    using System.Data;
    using System.Data.SqlClient;
    
    namespace Tandy.Helper
    {
    
        /// <summary>
        /// 
        /// 类名:DBHelper
        /// 
        /// 作用:用于处理对MSSQL数据库的增删改查操作
        /// 
        /// 作者:汤晓华 
        /// 
        /// 创建日期:2009年6月20日
        /// 
        /// </summary>
        [Serializable()]
        public class DBHelper
        {
            //连接字符串
            private static readonly string connectionString =
                                ConfigurationManager.ConnectionStrings["mssqlConnString"].ConnectionString;
    
            #region 方法
            /// <summary>
            /// 执行SQL语句或者存储过程的非查询操作
            /// </summary>
            /// <param name="cmdText">SQL语句或存储过程</param>
            /// <param name="cmdType">命令字符串类型</param>
            /// <param name="parameters">参数</param>
            /// <returns>INT 受影响行数</returns>
            public static int ExecuteNonQuery(string cmdText, CommandType cmdType, params SqlParameter[] parameters)
            {
                //Sql命令处理对象
                SqlCommand cmd = new SqlCommand();
    
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    try
                    {
                        //处理SqlCommand对象
                        PrepareCommand(cmd, connection, cmdText, cmdType, parameters);
                        //声明异步操作
                        IAsyncResult async = cmd.BeginExecuteNonQuery();
    
                        int val = cmd.EndExecuteNonQuery(async);
    
                        cmd.Dispose();
    
                        return val;
                    }
                    catch (SqlException ex)
                    {
    
                        throw ex;
                    }
                }
            }
    
            /// <summary>
            /// 返回数据集的首行首列
            /// </summary>
            /// <param name="cmdText">SQL语句或存储过程</param>
            /// <param name="cmdType">命令字符串类型</param>
            /// <param name="parameters">参数</param>
            /// <returns>返回首行首页</returns>
            public static object ExecuteScalar(string cmdText, CommandType cmdType, params SqlParameter[] parameters)
            {
                //Sql命令处理对象
                SqlCommand cmd = new SqlCommand();
    
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    try
                    {
                        //处理SqlCommand对象
                        PrepareCommand(cmd, connection, cmdText, cmdType, parameters);
                        object val = cmd.ExecuteScalar();
                        cmd.Dispose();
                        return val;
                    }
                    catch (SqlException ex)
                    {
    
                        throw ex;
                    }
                }
            }
    
            /// <summary>
            /// 获取数据流
            /// </summary>
            /// <param name="cmdText">SQL语句或存储过程</param>
            /// <param name="cmdType">命令字符串类型</param>
            /// <param name="parameters">参数</param>
            /// <returns>SqlDataReader对象</returns>
            public static SqlDataReader ExecuteReader(string cmdText, CommandType cmdType, params SqlParameter[] parameters)
            {
                //Sql命令处理对象
                SqlCommand cmd = new SqlCommand();
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    try
                    {
                        PrepareCommand(cmd, connection, cmdText, cmdType, parameters);
                        SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                        return rdr;
                    }
                    catch (SqlException ex)
                    {
                        throw ex;
                    }
                }
    
            }
    
            /// <summary>
            /// 获取数据集
            /// </summary>
            /// <param name="cmdText">SQL语句或存储过程</param>
            /// <param name="cmdType">命令字符串类型</param>
            /// <param name="parameters">参数</param>
            /// <returns>DataTable</returns>
            public static DataTable GetDataTable(string cmdText, CommandType cmdType, params SqlParameter[] parameters)
            {
                SqlCommand cmd = new SqlCommand();
    
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    try
                    {
                        PrepareCommand(cmd, connection, cmdText, cmdType, parameters);
                        DataTable table = new DataTable();
                        SqlDataAdapter sda = new SqlDataAdapter(cmd);
                        sda.Fill(table);
                        sda.Dispose();
                        cmd.Dispose();
                        return table;
                    }
                    catch (SqlException ex)
                    {
    
                        throw ex;
                    }
                }
            }
    
    
    
            /// <summary>
            /// 获取数据集
            /// </summary>
            /// <param name="cmdText">SQL语句或存储过程</param>
            /// <param name="cmdType">命令字符串类型</param>
            /// <param name="parameters">参数</param>
            /// <returns>DataTable</returns>
            public static SqlDataAdapter GetSqlDataAdapter(string cmdText, CommandType cmdType, params SqlParameter[] parameters)
            {
                SqlCommand cmd = new SqlCommand();
    
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    try
                    {
                        PrepareCommand(cmd, connection, cmdText, cmdType, parameters);
                        SqlDataAdapter sda = new SqlDataAdapter(cmd);
                        return sda;
                    }
                    catch (SqlException ex)
                    {
    
                        throw ex;
                    }
                }
            }
    
            /// <summary>
            /// 处理SqlCommand对象
            /// </summary>
            /// <param name="cmdText">SQL语句或存储过程</param>
            /// <param name="cmdType">命令字符串类型</param>
            /// <param name="parameters">参数</param>
            /// <returns></returns>
            private static void PrepareCommand(SqlCommand cmd, SqlConnection connection, string cmdText, CommandType cmdType, SqlParameter[] parameters)
            {
                if (connection.State != ConnectionState.Open)
                {
                    connection.Open();
                }
                cmd.Connection = connection;
                cmd.CommandText = cmdText;
                cmd.CommandType = cmdType;
    
                if (null != parameters)
                {
                    cmd.Parameters.Clear();
                    cmd.Parameters.AddRange(parameters);
                }
            }
    
            #endregion
        }
    }
  • 相关阅读:
    NetBeans Visual Library Tutorial
    Introduction to the PeertoPeer Sockets Project
    p2psockets代码
    摄像头说明
    Best practice to use ConcurrentMap's putIfAbsent
    转:jxmultisplitpane: how to use?
    格式化文本支持:JTextPane
    中国维护的对象标识符定义
    对称加密DES和TripleDES
    Kerberos的原理 MIT
  • 原文地址:https://www.cnblogs.com/tandly/p/1621908.html
Copyright © 2011-2022 走看看