zoukankan      html  css  js  c++  java
  • ADO.NET工具类(二)

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data.SqlClient;
    using System.Data;
    using System.Configuration;
    
    namespace AjaxFinder
    {
        public class SQLHelper
        {
           
            //public static string connectionString = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
            public static string connectionString = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
            public SQLHelper()
            {
    
            }
    
            #region 执行带参数的SQL语句
    
            #region ExecuteNonQuery
            /// <summary>
            /// 在指定的连接上用指定的参数执行SQL命令(不返回任何行)
            /// 一般用语执行执行 UPDATE、INSERT 或 DELETE 语句。
            /// </summary>
            /// <param name="connectionString">连接字符串</param>
            /// <param name="commandType">命令类型(存储过程、文本等等)</param>
            /// <param name="commandText">存储过程名或T-SQL语句</param>
            /// <returns>该命令影响的行数</returns>
            public static int ExecuteNonQuery(CommandType commandType, string commandText, params SqlParameter[] commandParameters)
            {
                if (connectionString == null || connectionString.Length == 0)
                    throw new ArgumentNullException("connectionString");
                if (commandText == null || commandText.Length == 0)
                    throw new ArgumentNullException("commandText");
    
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    connection.Open();
    
                    SqlCommand command = new SqlCommand();
                    PrepareCommand(command, connection, commandType, commandText, commandParameters);
                    int retval = command.ExecuteNonQuery();
                    
                    connection.Close();
                    //connection.Dispose();
                    return retval;
                  
                }
            }
            #endregion
    
            #region ExecuteReader
            /// <summary>
            /// 在指定的连接上用指定的参数执行SQL命令
            /// </summary>
            /// <param name="connectionString">连接字符串</param>
            /// <param name="commandType">命令类型(存储过程、文本等等)</param>
            /// <param name="commandText">存储过程名或T-SQL语句</param>
            /// <param name="commandParameters">命令的参数</param>
            /// <returns>返回一个SqlDataReader对象</returns>
            public static SqlDataReader ExecuteReader(CommandType commandType, string commandText, params SqlParameter[] commandParameters)
            {
                if (connectionString == null || connectionString.Length == 0)
                    throw new ArgumentNullException("connectionString");
                if (commandText == null || commandText.Length == 0)
                    throw new ArgumentNullException("commandText");
    
                SqlConnection connection = null;
                try
                {
                    connection = new SqlConnection(connectionString);
                    connection.Open();
    
                    SqlCommand command = new SqlCommand();
                    PrepareCommand(command, connection, commandType, commandText, commandParameters);
                    SqlDataReader dataReader = command.ExecuteReader(CommandBehavior.CloseConnection);
                    return dataReader;
                }
                catch
                {
                    if (connection != null)
                        connection.Close();
                    //connection.Dispose();
                    return null;
                }
            }
    
            #endregion
    
            #region 执行查询语句,返回DataSet
            /// <summary>
            /// 执行查询语句,返回DataSet
            /// </summary>
            /// <param name="SQLString">查询语句</param>
            /// <returns>DataSet</returns>
            public static DataSet Query(string SQLString, params SqlParameter[] cmdParms)
            {
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    DataSet ds = new DataSet();
                    //在此处编写执行Sql语句的返回DataSet的通用代码
                    FillDataSet(CommandType.Text, SQLString, ds, cmdParms);  //填充数据集
                    return ds;
                }
            }
            #endregion
    
            #region ExecuteScalar
            /// <summary>
            /// 在指定的连接上用指定的参数执行SQL命令
            /// </summary>
            /// <param name="connectionString">连接字符串</param>
            /// <param name="commandType">命令类型(存储过程、文本等等)</param>
            /// <param name="commandText">存储过程名或T-SQL语句</param>
            /// <param name="commandParameters">命令的参数</param>
            /// <returns>返回一个单值</returns>
            public static object ExecuteScalar(CommandType commandType, string commandText, params SqlParameter[] commandParameters)
            {
                if (connectionString == null || connectionString.Length == 0)
                    throw new ArgumentNullException("connectionString");
                if (commandText == null || commandText.Length == 0)
                    throw new ArgumentNullException("commandText");
    
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    connection.Open();
    
                    SqlCommand command = new SqlCommand();
                    PrepareCommand(command, connection, commandType, commandText, commandParameters);
                    object obj = command.ExecuteScalar();
                    connection.Close();
                    //connection.Dispose();
                    return obj;
                }
            }
            #endregion
    
            #region FillDataSet
            /// <summary>
            /// 填充数据集
            /// </summary>
            /// <param name="commandType">命令类型(存储过程、文本等等)</param>
            /// <param name="commandText">存储过程名或T-SQL语句</param>
            /// <param name="dataSet">要填充的数据集</param>
            /// <param name="tableNames">数据集中的表名</param>
            /// <param name="commandParameters">命令的参数</param>
            public static void FillDataSet(CommandType commandType,
                string commandText, DataSet dataSet, params SqlParameter[] commandParameters)
            {
                if (connectionString == null || connectionString.Length == 0)
                    throw new ArgumentNullException("connectionString");
                if (commandText == null || commandText.Length == 0)
                    throw new ArgumentNullException("commandText");
                if (dataSet == null)
                    throw new ArgumentNullException("dataSet");
    
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    connection.Open();
    
                    SqlCommand command = new SqlCommand();
                    PrepareCommand(command, connection, commandType, commandText, commandParameters);
    
                    SqlDataAdapter da = new SqlDataAdapter(command);
                    da.Fill(dataSet);
                    connection.Close();
                    //connection.Dispose();
                }
            }
            #endregion
    
            #region UpdateDataSet
            /// <summary>
            /// 更新数据集
            /// </summary>
            /// <param name="insertCommand">插入命令对象</param>
            /// <param name="deleteCommand">删除命令对象</param>
            /// <param name="updateCommand">更新命令对象</param>
            /// <param name="dataSet">用作更新数据源的数据集</param>
            /// <param name="tableName">用作更新数据源的数据表</param>
            public static void UpdateDataSet(SqlCommand insertCommand, SqlCommand deleteCommand,
                SqlCommand updateCommand, DataSet dataSet, string tableName)
            {
                if (insertCommand == null) throw new ArgumentNullException("insertCommand");
                if (deleteCommand == null) throw new ArgumentNullException("deleteCommand");
                if (updateCommand == null) throw new ArgumentNullException("updateCommand");
                if (tableName == null || tableName.Length == 0) throw new ArgumentNullException("tableName");
    
                using (SqlDataAdapter dataAdapter = new SqlDataAdapter())
                {
                    dataAdapter.UpdateCommand = updateCommand;
                    dataAdapter.InsertCommand = insertCommand;
                    dataAdapter.DeleteCommand = deleteCommand;
    
                    dataAdapter.Update(dataSet, tableName);
    
                    dataSet.AcceptChanges();
                }
            }
            #endregion
    
            #region PrepareCommand
            /// <summary>
            /// 设置Command对象的属性
            /// </summary>
            /// <param name="command">命令对象</param>
            /// <param name="connection">连接对象</param>
            /// <param name="commandType">命令类型(存储过程、文本等等)</param>
            /// <param name="commandText">存储过程名或T-SQL语句</param>
            /// <param name="commandParameters">命令的参数</param>
            private static void PrepareCommand(SqlCommand command, SqlConnection connection, CommandType commandType, string commandText, SqlParameter[] commandParameters)
            {
                if (command == null)
                    throw new ArgumentNullException("command");
                if (connection == null)
                    throw new ArgumentNullException("connection");
                if (commandText == null || commandText.Length == 0)
                    throw new ArgumentNullException("commandText");
    
                command.Connection = connection;
                command.CommandType = commandType;
                command.CommandText = commandText;
                if (commandParameters != null)
                    foreach (SqlParameter para in commandParameters)
                        command.Parameters.Add(para);
            }
            #endregion
    
            #region ExeDelSqlTransaction
            /// <summary>
            /// 执行事务
            /// </summary>
            /// <param name="commandType"></param>
            /// <param name="paramsWhere">条件</param>
            /// <param name="sqlCommands">sql语句</param>
            public static bool ExeSqlTransaction(CommandType commandType, string sqlCommands, params SqlParameter[] paramsWhere)
            {
                using (SqlConnection conn = new SqlConnection(connectionString))
                {
                    conn.Open();
                    SqlTransaction st = conn.BeginTransaction();
                    SqlCommand cmd = new SqlCommand();
                    cmd.CommandType = commandType;
                    cmd.Connection = conn;
                    cmd.Transaction = st;
                    try
                    {
                        cmd.CommandText = sqlCommands;
                        if (paramsWhere != null)
                            foreach (SqlParameter parameter in paramsWhere)
                            {
                                cmd.Parameters.Add(parameter);
                            }
                        cmd.ExecuteNonQuery();
                        st.Commit();      //提交事务
                        return true;
                    }
                    catch
                    {
                        st.Rollback();  //回滚事务
                        return false;
                    }
                }
            }
            #endregion
    
            #region MD5加密
            /// <summary>
            /// MD5加密
            /// </summary>
            /// <param name="md5Str"></param>
            /// <returns></returns>
            public static string GetMD5(string md5Str)
            {
                return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(md5Str, "MD5");
            }
            #endregion
            #endregion
        }
    }
    萌橙 你瞅啥?
  • 相关阅读:
    JavaScript运行机制 Event Loop
    async 函数
    JavaScript Promise 对象
    pc端rest.css
    微信小程序公用样式类
    移动端base.css
    RegExp正则对象匹配规则
    RegExp正则相关方法
    mysql(五)事务
    mysql(四)海量数据优化
  • 原文地址:https://www.cnblogs.com/daimaxuejia/p/8242687.html
Copyright © 2011-2022 走看看