`
jilong-liang
  • 浏览: 481013 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类

C#的SQLHelper封装

    博客分类:
  • C #
C# 
阅读更多

using System;

using System.Collections.Generic;

using System.Text;

using System.Configuration;

using System.Data;

using System.Data.SqlClient;

using System.Collections;

 

namespace Utility

{

    public class SQLHelper

    {

        //AppSettings

        public static string App_SQL_DB = ConfigurationManager.AppSettings["SqlCon"];

        //ConnectionStrings

        //static string Conn_SQL_DB = ConfigurationManager.ConnectionStrings["SqlCon"].ToString();

 

        /// <summary>

        /// 增 删 改方法

        /// </summary>

        /// <param name="cmdType"></param>

        /// <param name="sql"></param>

        /// <param name="parms"></param>

        /// <returns></returns>

        public static int ExecuteNonQuery(CommandType cmdType, string sql, SqlParameter[] parms)

        {

            int result = -1;

            using (SqlConnection con = new SqlConnection(App_SQL_DB))

            {

                SqlCommand cmd = new SqlCommand();

                PrepareSQLCommand(cmdType, sql, parms, con, cmd);

                result = cmd.ExecuteNonQuery();

            }

            return result;

        }

 

        /// <summary>

        /// 提取共同方法

        /// </summary>

        /// <param name="cmdType"></param>

        /// <param name="sql"></param>

        /// <param name="parms"></param>

        /// <param name="con"></param>

        /// <param name="cmd"></param>

        private static void PrepareSQLCommand(CommandType cmdType, string sql, SqlParameter[] parms, SqlConnection con, SqlCommand cmd)

        {

            cmd.Connection = con;

            if (con.State != ConnectionState.Open)

                con.Open();

            cmd.CommandText = sql;

            cmd.CommandType = cmdType;

            if (parms != null)

                foreach (SqlParameter parm in parms)

                {

                    cmd.Parameters.Add(parm);

                }

        }

 

 

        /// <summary>

        /// 查询

        /// </summary>

        /// <param name="cmdType"></param>

        /// <param name="sql"></param>

        /// <param name="parms"></param>

        /// <returns></returns>

        public static SqlDataReader ExecuteReader(CommandType cmdType, string sql, SqlParameter[] parms)

        {

            SqlConnection con = new SqlConnection(App_SQL_DB);

            SqlCommand cmd = new SqlCommand();

            PrepareSQLCommand(cmdType, sql, parms, con, cmd);

            SqlDataReader reader = cmd.ExecuteReader();

            return reader;

        }

        /// <summary>

        /// 读取单个值

        /// 结果集中第一行的第一列;如果结果集为空,则为空引用

        /// </summary>

        /// <param name="cmdType"></param>

        /// <param name="sql"></param>

        /// <param name="parms"></param>

        /// <returns></returns>

        public static int ExecuteScalar(CommandType cmdType, string sql, SqlParameter[] parms)

        {

            int result = -1;

            //连接数据库

            using (SqlConnection con = new SqlConnection(App_SQL_DB))

            {

                //执行

                SqlCommand cmd = new SqlCommand();

 

                PrepareSQLCommand(cmdType, sql, parms, con, cmd);

                result = (int)cmd.ExecuteScalar();

                return result;

            }

        }

 

        /// <summary>

        /// 事务提交多SQL语句的执行

        /// <param name="cmdText">sql语句的数组</param>

        /// <returns>true表示成功,false表示失败</returns>

        /// </summary>

        public static int ExecuteNonQuery(ArrayList cmdText)

        {

            int flag = -1;

            using (SqlConnection connection = new SqlConnection(App_SQL_DB))

            {

                SqlCommand cmd = new SqlCommand();

 

                //SQLCmd.CommandText = null;

                //SQLCmd.CommandType = cmdType;

 

                //PrepareSQLCommand(cmdType, null, parms, connection, SQLCmd);

 

                SqlTransaction Trans;

                connection.Open();

                Trans = connection.BeginTransaction();

                try

                {

                    cmd.Connection = connection;

                    cmd.Transaction = Trans;

 

                    for (int i = 0; i < cmdText.Count; i++)

                    {

                        //SQLCmd.CommandText = EscapeString(cmdText[i].ToString());

                        cmd.CommandText = cmdText[i].ToString();

                        flag = cmd.ExecuteNonQuery();

                    }

                    Trans.Commit();

                }

                catch (Exception e)

                {

 

                    Trans.Rollback();

                }

                finally

                {

                    connection.Close();

                }

            } return flag;

 

        }

 

        /// <summary>

        /// 执行多条SQL语句的方法

        /// </summary>

        /// <param name="SQLStringList"></param>

        public static void ExecuteNonQuerySQL(ArrayList SQLStringList)

        {

            using (SqlConnection conn = new SqlConnection(App_SQL_DB))

            {

                conn.Open();

                SqlCommand cmd = new SqlCommand();

                cmd.Connection = conn;

                SqlTransaction tx = conn.BeginTransaction();

                cmd.Transaction = tx;

                try

                {

                    for (int n = 0; n < SQLStringList.Count; n++)

                    {

                        string strsql = SQLStringList[n].ToString();

                        if (strsql.Trim().Length > 1)

                        {

                            cmd.CommandText = strsql;

                            cmd.ExecuteNonQuery();

                        }

                    }

                    tx.Commit();

                }

                catch (System.Data.SqlClient.SqlException E)

                {

                    tx.Rollback();

                    throw new Exception(E.Message);

                }

            }

        }

 

        /// <summary>

        /// 转义字符

        /// </summary>

        /// <param name="str"></param>

        /// <returns></returns>

        public static string EscapeString(string str)

        {

            //  str = str.Replace("[lt", "<");

            // str = str.Replace("[gt", ">");

            return str;

        }

    }

}

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using Model;

using System.Data.SqlClient;

using MYASP;

using System.Data;

 

namespace DAL

{

    public class UsersDAL

    {

        /// <summary>

        /// 

        /// </summary>

        /// <param name="user"></param>

        /// <returns></returns>

        public int UsesLogin(Users user)

        {

            int result = -1;

            string SQL = "select id,username,password from users where password=@Password and username=@Username";

            SqlParameter[] param = new SqlParameter[2];

            param[0] = new SqlParameter("@Username", user.Username);

            param[1] = new SqlParameter("@Password", user.Password);

            result = SQLDBHelper.ExecuteScalar(CommandType.Text, SQL, param);

            return result;

        }

 

 

 

        /// <summary>

        /// 添加

        /// </summary>

        /// <returns></returns>

        public int AddUsers(Users user)

        {

            int result = -1;

            string sql = "INSERT INTO Users(Username,Password) VALUES(@Username,@Password)";

            SqlParameter[] parms = new SqlParameter[15];

            parms[0] = new SqlParameter("@Username", user.Username);

            parms[1] = new SqlParameter("@Password", user.Password);

            result = SQLDBHelper.ExecuteNonQuery(CommandType.Text, sql, parms);

            return result;

        }

    }

}

 

 <?xml version="1.0" encoding="utf-8"?>

<configuration>

 

  <configSections>

    <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>

  </configSections>

  <!--连接数据库-->

  <appSettings>

    <add  key="SqlCon" value="Data Source=JILONGLIANG\MSSERVER2005;Initial Catalog=CRM;Persist Security Info=True;User ID=sa;Password=admin1988"/>

  </appSettings>

 

  <log4net>

    <!--定义输出到文件中-->

    <appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net">

      

 

      <!--日志生成的路径

        winformweb的生成日志文件不一样,在生成到项目的日志会生成到项目的Debug目录下

        E:\ASP.NET\MyApp\MyApp\bin\Debug 

      -->

      <param name="File"  value="log/app"/>

      <!--日志追加到文件方式-->

      <param name="AppendToFile" value="true"/>

      <!--是否按日期滚动生成-->

      <param name="RollingStyle" value="Date"/>

      <!--

          动态生成日志文件的文件类型或是后缀名 

          <datePattern value="yyyyMMdd-HH:mm:ss" />        

        -->

      <param name="DatePattern" value="yyyyMMdd.LOG"/>

      <!--文件名是否动态生成-->

      <param name="StaticLogFileName" value="false"/>

 

      <layout type="log4net.Layout.PatternLayout">

        <!--<header name="Header" value="[Header] "/>-->

       

        <!--每条日志末尾的文字说明-->

        <footer value="==================================日志的结尾======================================================" />

        <!--输出格式-->

        <!--样例:记录时间:2012-07-26 16:02:53,500 线程ID:[3696] 日志级别:DEBUG 出错类:DAL.UsersDAL property:[(null)] - 错误描述:你引起了一个错误,错误ID为 Debug1504984943-->

        <!--<conversionPattern value="记录时间:%date 线程ID:[%thread] 日志级别:%-5level 出错类:%logger property:[%property{NDC}] - 错误描述:%message%newline" />-->

        <conversionPattern value="%n记录时间:%date%n 线程ID:[%thread] 日志级别:%-5level操作者ID%property{Operator} 操作类型:%property{Action}%n 当前机器名:%property%n 当前机器名及登录用户:%username %n 记录类:%logger 记录当前类的方法:%location%n 消息描述:%property{Message}%n 异常:%exception %n 异常信息:%message%newline %n%n"/>

      </layout>

    </appender>

 

  

 

    <!--定义日志的输出媒介,下面定义日志以四种方式输出。也可以下面的按照一种类型或其他类型输出。-->

    <root>

      <!--文件形式记录日志-->

      <appender-ref ref="rollingFile" />

      <!--控制台控制显示日志-->

      <appender-ref ref="ConsoleAppender" />

      <!--Windows事件日志-->

      <appender-ref ref="EventLogAppender" />

      <!-- 如果不启用相应的日志记录,可以通过这种方式注释掉

      <appender-ref ref="AdoNetAppender_Access" />

      -->

    </root>

 

  </log4net>

</configuration>

0
2
分享到:
评论

相关推荐

    C# sqlhelper多类库

    总结来说,这个项目提供了一个C#的数据库操作框架,通过SqlHelper多类库的形式,提供了对数据库操作的封装和支持。它按照分层架构设计,包括了数据访问层、业务逻辑层和模型层,还有Web应用本身。开发者可以通过这个...

    C#SQLHelper 支持多數據庫(oracle/DB2/MSSQL...)帶SQL源碼

    C#SQLHelper是一个用于简化数据库操作的类库,尤其在处理多种数据库系统时,如Oracle、DB2和MSSQL等,它提供了一致的接口和方法,使开发者无需关注底层数据库的具体实现细节。本篇文章将深入探讨C#SQLHelper的核心...

    C#中oracle连接数据库的封装类

    在本场景中,我们关注的是一个名为"C#中oracle连接数据库的封装类"的主题,这个主题涉及到创建一个名为`DbHelperOra.cs`的类,用于简化与Oracle数据库的交互。这种封装可以提高代码的可读性和复用性,减少直接处理...

    C# SqlHelper类

    总的来说,SqlHelper类是C#中一个非常实用的工具,它可以帮助开发者更高效、更安全地处理与数据库的交互。通过封装常见的数据库操作,它使得代码更加简洁、易于理解和维护。在实际项目中,可以根据具体需求扩展和...

    c#中SqlHelper封装SqlDataReader的方法

    本篇将详细介绍如何在C#中使用SqlHelper来封装SqlDataReader,以便更高效、安全地处理数据库查询结果。 SqlDataReader是一个只进的、快速的数据读取器,它可以顺序读取数据库中的记录,而无需一次性加载所有数据到...

    C# SQLHelper类, DbHelperMSSql.cs

    C#封装的操作SQL Server数据库的帮助类,DbHelperMSSql.cs SQLHelper

    Sqlhelper封装类

    应用于.net平台下代码编写 封装代码,方便调用 仅供参考使用

    C# SqlHelper类,web.config

    `SqlHelper`类是一个辅助类,它封装了ADO.NET的基本数据库操作,如执行SQL语句和存储过程,从而避免了重复的代码,提高了代码的可维护性和可复用性。 在C#中,`SqlHelper`类通常包含以下方法: 1. `...

    c#sqlhelper

    在这个“c#sqlhelper”项目中,我们可能看到的是一个基础的实现,用于演示如何在C#网页应用中方便地执行SQL语句。 首先,SQLHelper类通常包含以下几个核心功能: 1. **连接数据库**:SQLHelper会封装数据库连接...

    c#SQLHelper(forwinForm)实现代码解读.docx

    首先,SQLHelper的主要作用是提供对数据库操作的封装,它通常包含了建立数据库连接、执行SQL语句、处理结果集等基本功能。在这个实现中,SQLHelper使用了数据连接池(Connection Pooling)技术来优化性能,减少...

    SqlHelper.zip

    SqlHelper是C#编程语言中常见的一种用于简化数据库操作的辅助类库,它为开发者提供了方便的接口,以便更高效地执行SQL语句。在.NET框架下,开发人员经常使用SqlHelper来代替直接操作ADO.NET组件,以提高代码的可读性...

    ADO.NET自己封装SqlHelper类

    下面我们将详细讨论如何使用C#语言封装一个SqlHelper类,以及其核心知识点。 首先,我们要理解ADO.NET的基础组件:Connection(连接)、Command(命令)、DataAdapter(数据适配器)和DataSet(数据集)。SqlHelper...

    SQLHelper for C#

    SQLHelper是C#中常见的一种设计模式,它提供了一种方便的方式来封装数据库访问逻辑,避免了直接编写ADO.NET代码的繁琐。下面我们将详细讨论SQLHelper类以及其在C#中的应用。 SQLHelper类通常包含以下功能: 1. **...

    c#SQLHelper(forwinForm)实现代码解读.pdf

    在C#开发Windows桌面应用程序时,数据访问层的实现是至关重要的,SQLHelper类就是一种常见的解决方案,它封装了数据库操作,提供了简单易用的接口。本文将深入解析C#中的SQLHelper类,特别是针对WinForm应用的实现...

    SQLHelper(C#)详细中文注释

    这个类通常是用C#编写的,它封装了ADO.NET的基本操作,如执行SQL语句、存储过程等,为开发者提供了一种方便快捷的方式与数据库进行交互。下面将详细介绍SQLHelper类的主要功能和使用方法。 1. **SQLHelper类的构造...

    C# SqlHelper 数据库操作工具类

    对C#操作SQL数据库 进行了封装 操作简单

    C# sqlserver数据库操作封装类

    C#的sqlserver数据库操作封装类,封装了sql语句的查询、修改、插入、删除操作,以及存储过程的执行,包括有输入、输出参数的存储过程,存储过程的执行无需输入任何参数名称,只需输入参数值即可。同时封装了大批量...

    C# SQL封装类类

    总之,`C# SQL封装类类`如`SqlHelper`是软件开发中的重要工具,它简化了数据库操作,提高了代码质量,并提供了安全的SQL执行机制。通过理解和熟练使用这样的类,开发者能够更高效、安全地进行数据库编程。

Global site tag (gtag.js) - Google Analytics