首页 > 代码库 > SqlHelper

SqlHelper

using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;/// <summary>/// Sql Server 操作基类/// </summary>///<author>dsq</author>///<datetime>09-10-12</datetime>public class SqlHelper{    public SqlHelper()    {}    #region 公共方法    /// <summary>    /// 验证字符串数组    /// </summary>    /// <param name="arr">字符串数组</param>    /// <returns>验证结果:true or false</returns>    private static bool ArrayIsNullOrEmpty(string[] arr)    {        if (arr == null || arr.Length < 1)            return true;        else        {            foreach (string parm in arr)            {                if (string.IsNullOrEmpty(parm))                    return true;            }            return false;        }    }    /// <summary>    /// 检查参数    /// </summary>    /// <param name="parms">被检测的数组对象</param>    /// <returns>检测结果:为空:true or false</returns>    private static bool SqlParameterIsNullOrEmpty(SqlParameter[] parms)    {        if (parms == null || parms.Length <= 0)        {            return true;        }        else        {            foreach (SqlParameter parm in parms)            {                if (parm == null)                    return true;            }            return false;        }    }    /// <summary>    /// 检查参数    /// </summary>    /// <param name="parms">被检测的数组对象</param>    /// <returns>检测结果:为空:true or false</returns>    private static bool SqlParameterIsNullOrEmpty(SqlParameter[][] parms)    {        if (parms == null || parms.Length <= 0)        {            return true;        }        else        {            for (int i = 0; i < parms.Length; i++)            {                if (parms[i] == null || parms[i].Length < 1)                    return true;                foreach (SqlParameter parm in parms[i])                {                    if (parm == null)                        return true;                }            }            return false;        }    }    #endregion    #region 执行存储过程    #region 查询数据    /// <summary>    /// 带参数的存储过程查询    /// </summary>    /// <param name="procName">存储过程名</param>    /// <param name="parms">参数</param>    /// <param name="conString">连接字符串</param>    /// <returns>数据表</returns>    public static DataTable Proc_ExecuteDataTable(string procName, SqlParameter[] parms, string conString)    {        bool isNull = SqlParameterIsNullOrEmpty(parms) || string.IsNullOrEmpty(procName) || string.IsNullOrEmpty(conString);        if (isNull)            return null;        DataTable dt = new DataTable();        using (SqlConnection conn = new SqlConnection(conString))        {            using (SqlCommand command = new SqlCommand())            {                command.Connection = conn;                command.CommandType = CommandType.StoredProcedure;                command.CommandText = procName;                foreach (SqlParameter parm in parms)                    command.Parameters.Add(parm);                try                {                    conn.Open();                    using (SqlDataReader dr = command.ExecuteReader())                    {                        dt.Load(dr);                        }                    return dt;                }                catch                {                    return null;                }            }        }    }    /// <summary>    /// 不带参数的存储过程查询    /// </summary>    /// <param name="procName">存储过程名</param>    /// <param name="conString">连接字符串</param>    /// <returns>数据表</returns>    public static DataTable Proc_ExecuteDataTable(string procName, string conString)    {        if (string.IsNullOrEmpty(procName) || string.IsNullOrEmpty(conString))            return null;        DataTable dt = new DataTable();        using (SqlConnection conn = new SqlConnection(conString))        {            using (SqlDataAdapter adapter = new SqlDataAdapter(procName, conn))            {                adapter.SelectCommand.CommandType = CommandType.StoredProcedure;                try                {                    adapter.Fill(dt);                    return dt;                }                catch                {                    return null;                }            }        }    }    /// <summary>    /// 带参数的存储过程查询    /// </summary>    /// <param name="procName">存储过程名</param>    /// <param name="parms">参数</param>    /// <param name="conString">连接字符串</param>    /// <returns>数据集</returns>    public static DataSet Proc_ExecuteDataSet(string procName, SqlParameter[] parms, string conString)    {        bool isNull = SqlParameterIsNullOrEmpty(parms) || string.IsNullOrEmpty(procName) || string.IsNullOrEmpty(conString);        if (isNull)            return null;        DataSet ds = new DataSet();        using (SqlConnection conn = new SqlConnection(conString))        {            using (SqlCommand command = new SqlCommand(procName, conn))            {                command.CommandType = CommandType.StoredProcedure;                foreach (SqlParameter parm in parms)                    command.Parameters.Add(parm);                using (SqlDataAdapter adapter = new SqlDataAdapter(command))                {                    try                    {                        adapter.Fill(ds);                        return ds;                    }                    catch                    {                        return null;                    }                }            }        }    }    /// <summary>    /// 带参数的存储过程查询    /// </summary>    /// <param name="procName">存储过程名</param>    /// <param name="parms">参数</param>    /// <param name="tbName">内存表表名</param>    /// <param name="conString">连接字符串</param>    /// <returns>数据集</returns>    public static DataSet Proc_ExecuteDataSet(string procName, SqlParameter[] parms, string tbName, string conString)    {        bool isNull = SqlParameterIsNullOrEmpty(parms) || string.IsNullOrEmpty(procName) || string.IsNullOrEmpty(tbName) || string.IsNullOrEmpty(conString);        if (isNull)            return null;        DataSet ds = new DataSet();        using (SqlConnection conn = new SqlConnection(conString))        {            using (SqlCommand command = new SqlCommand(procName, conn))            {                command.CommandType = CommandType.StoredProcedure;                foreach (SqlParameter parm in parms)                    command.Parameters.Add(parm);                using (SqlDataAdapter adapter = new SqlDataAdapter(command))                {                    try                    {                        adapter.Fill(ds, tbName);                        return ds;                    }                    catch                    {                        return null;                    }                }            }        }    }    /// <summary>    /// 不带参数的存储过程查询    /// </summary>    /// <param name="procName">存储过程名</param>    /// <param name="conString">连接字符串</param>    /// <returns>数据集</returns>    public static DataSet Proc_ExecuteDataSet(string procName, string conString)    {        if (string.IsNullOrEmpty(procName) || string.IsNullOrEmpty(conString))            return null;        DataSet ds = new DataSet();        using (SqlConnection conn = new SqlConnection(conString))        {            using (SqlCommand command = new SqlCommand())            {                command.Connection = conn;                command.CommandType = CommandType.StoredProcedure;                command.CommandText = procName;                using (SqlDataAdapter adapter = new SqlDataAdapter())                {                    adapter.SelectCommand = command;                    try                    {                        adapter.Fill(ds);                        return ds;                    }                    catch                    {                        return null;                    }                }            }        }    }    /// <summary>    /// 不带参数的存储过程查询    /// </summary>    /// <param name="procName">存储过程名</param>    /// <param name="tbName">内存表表名</param>    /// <param name="conString">连接字符串</param>    /// <returns>数据集</returns>    public static DataSet Proc_ExecuteDataSet(string procName, string tbName, string conString)    {        if (string.IsNullOrEmpty(procName) || string.IsNullOrEmpty(tbName) || string.IsNullOrEmpty(conString))            return null;        DataSet ds = new DataSet();        using (SqlConnection conn = new SqlConnection(conString))        {            using (SqlCommand command = new SqlCommand())            {                command.Connection = conn;                command.CommandType = CommandType.StoredProcedure;                command.CommandText = procName;                using (SqlDataAdapter adapter = new SqlDataAdapter())                {                    adapter.SelectCommand = command;                    try                    {                        adapter.Fill(ds, tbName);                        return ds;                    }                    catch                    {                        return null;                    }                }            }        }    }    #endregion    #region 插入数据、更新数据、删除数据    /// <summary>    ///  执行插入、删除、更新操作    /// </summary>    /// <param name="proName">存储过程名</param>    /// <param name="eCount">影响的行数</param>    /// <param name="conString">连接字符串</param>    /// <returns>执行结果:true or false</returns>    public static bool Proc_ExecuteNonQuery(string proName, out int eCount, string conString)    {        if (string.IsNullOrEmpty(proName) || string.IsNullOrEmpty(conString))        {            eCount = -2;            return false;        }        using (SqlConnection conn = new SqlConnection(conString))        {            using (SqlCommand command = new SqlCommand(proName, conn))            {                command.CommandType = CommandType.StoredProcedure;                try                {                    conn.Open();                    eCount = command.ExecuteNonQuery();                    return true;                }                catch                {                    eCount = -1;                    return false;                }            }        }    }    /// <summary>    ///  执行插入、删除、更新操作(附带事务)    /// </summary>    /// <param name="proName">存储过程名</param>    /// <param name="eCount">影响的行数</param>    /// <param name="conString">连接字符串</param>    /// <returns>执行结果:true or false</returns>    public static bool Proc_ExecuteNonQueryWithTrans(string proName, out int eCount, string conString)    {        if (string.IsNullOrEmpty(proName) || string.IsNullOrEmpty(conString))        {            eCount = -2;            return false;        }        using (SqlConnection conn = new SqlConnection(conString))        {            SqlTransaction transaction = null;            using (SqlCommand command = new SqlCommand(proName, conn))            {                command.CommandType = CommandType.StoredProcedure;                try                {                    conn.Open();                    transaction = conn.BeginTransaction();                    command.Transaction = transaction;                    eCount = command.ExecuteNonQuery();                    transaction.Commit();                    return true;                }                catch                {                    if (transaction != null)                        transaction.Rollback();                    eCount = -1;                    return false;                }            }        }    }    /// <summary>    /// 执行插入、删除、更新操作    /// </summary>    /// <param name="proName">存储过程名</param>    /// <param name="parms">参数数组</param>    /// <param name="eCount">影响的行数</param>    /// <param name="conString">连接字符串</param>    /// <returns>执行结果:true or false</returns>    public static bool Proc_ExecuteNonQuery(string proName, SqlParameter[] parms, out int eCount, string conString)    {        bool isNull = SqlParameterIsNullOrEmpty(parms) || string.IsNullOrEmpty(proName) || string.IsNullOrEmpty(conString);        if (isNull)        {            eCount = -2;            return false;        }        using (SqlConnection conn = new SqlConnection(conString))        {            using (SqlCommand command = new SqlCommand(proName, conn))            {                command.CommandType = CommandType.StoredProcedure;                foreach (SqlParameter parm in parms)                    command.Parameters.Add(parm);                try                {                    conn.Open();                    eCount = command.ExecuteNonQuery();                    return true;                }                catch                {                    eCount = -1;                    return false;                }            }        }    }    /// <summary>    /// 执行插入、删除、更新操作(附带事务)    /// </summary>    /// <param name="proName">存储过程名</param>    /// <param name="parms">参数数组</param>    /// <param name="eCount">影响的行数</param>    /// <param name="conString">连接字符串</param>    /// <returns>执行结果:true or false</returns>    public static bool Proc_ExecuteNonQueryWithTrans(string proName, SqlParameter[] parms, out int eCount, string conString)    {        bool isNull = SqlParameterIsNullOrEmpty(parms) || string.IsNullOrEmpty(proName) || string.IsNullOrEmpty(conString);        if (isNull)        {            eCount = -2;            return false;        }        using (SqlConnection conn = new SqlConnection(conString))        {            SqlTransaction transaction = null;            using (SqlCommand command = new SqlCommand(proName, conn))            {                command.CommandType = CommandType.StoredProcedure;                foreach (SqlParameter parm in parms)                    command.Parameters.Add(parm);                try                {                    conn.Open();                    transaction = conn.BeginTransaction();                    command.Transaction = transaction;                    eCount = command.ExecuteNonQuery();                    transaction.Commit();                    return true;                }                catch                {                    eCount = -1;                    transaction.Rollback();                    return false;                }            }        }    }    /// <summary>    /// 执行多次不同插入、删除、更新操作(附带事务)    /// </summary>    /// <param name="proNames">存储过程名数组</param>    /// <param name="conString">连接字符串</param>    /// <returns>执行结果:true or false</returns>    public static bool Proc_ExecuteNonQueryWithTrans(string[] proNames, string conString)    {        bool isError = ArrayIsNullOrEmpty(proNames) || string.IsNullOrEmpty(conString);        if (isError)            return false;        using (SqlConnection conn = new SqlConnection(conString))        {            SqlTransaction transaction = null;            using (SqlCommand command = new SqlCommand())            {                command.Connection = conn;                command.CommandType = CommandType.StoredProcedure;                try                {                    conn.Open();                    transaction = conn.BeginTransaction();                    command.Transaction = transaction;                    foreach (string proName in proNames)                    {                        command.CommandText = proName;                        command.ExecuteNonQuery();                    }                    transaction.Commit();                }                catch                {                    if (transaction != null)                        transaction.Rollback();                    return false;                }            }            return true;        }    }    /// <summary>    /// 执行插入、删除、更新操作    /// </summary>    /// <param name="proName">存储过程名</param>    /// <param name="conString">连接字符串</param>    /// <returns>执行结果:true or false</returns>    public static bool Proc_ExecuteNonQuery(string proName, string conString)    {        if (string.IsNullOrEmpty(proName) || string.IsNullOrEmpty(conString))            return false;        using (SqlConnection conn = new SqlConnection(conString))        {            using (SqlCommand command = new SqlCommand(proName, conn))            {                command.CommandType = CommandType.StoredProcedure;                try                {                    conn.Open();                    command.ExecuteNonQuery();                    return true;                }                catch                {                    return false;                }            }        }    }    /// <summary>    /// 执行插入、删除、更新操作(附带事务)    /// </summary>    /// <param name="proName">存储过程名</param>    /// <param name="conString">连接字符串</param>    /// <returns>执行结果:true or false</returns>    public static bool Proc_ExecuteNonQueryWithTrans(string proName, string conString)    {        if (string.IsNullOrEmpty(proName) || string.IsNullOrEmpty(conString))            return false;        using (SqlConnection conn = new SqlConnection(conString))        {            SqlTransaction transaction = null;            using (SqlCommand command = new SqlCommand(proName, conn))            {                command.CommandType = CommandType.StoredProcedure;                try                {                    conn.Open();                    transaction = conn.BeginTransaction();                    command.Transaction = transaction;                    command.ExecuteNonQuery();                    transaction.Commit();                    return true;                }                catch                {                    if (transaction != null)                        transaction.Rollback();                    return false;                }            }        }    }    /// <summary>    /// 执行插入、删除、更新操作    /// </summary>    /// <param name="proName">存储过程名</param>    /// <param name="parms">参数数组</param>    /// <param name="conString">连接字符串</param>    /// <returns>执行结果:true or false</returns>    public static bool Proc_ExecuteNonQuery(string proName, SqlParameter[] parms, string conString)    {        bool isNull = SqlParameterIsNullOrEmpty(parms) || string.IsNullOrEmpty(proName) || string.IsNullOrEmpty(conString);        if (isNull)            return false;        using (SqlConnection conn = new SqlConnection(conString))        {            using (SqlCommand command = new SqlCommand(proName, conn))            {                command.CommandType = CommandType.StoredProcedure;                foreach (SqlParameter parm in parms)                    command.Parameters.Add(parm);                try                {                    conn.Open();                    command.ExecuteNonQuery();                    return true;                }                catch                {                    return false;                }            }        }    }    /// <summary>    /// 执行插入、删除、更新操作(附带事务)    /// </summary>    /// <param name="proName">存储过程名</param>    /// <param name="parms">参数数组</param>    /// <param name="conString">连接字符串</param>    /// <returns>执行结果:true or false</returns>    public static bool Proc_ExecuteNonQueryWithTrans(string proName, SqlParameter[] parms, string conString)    {        bool isNull = SqlParameterIsNullOrEmpty(parms) || string.IsNullOrEmpty(proName) || string.IsNullOrEmpty(conString);        if (isNull)            return false;        using (SqlConnection conn = new SqlConnection(conString))        {            SqlTransaction transaction = null;            using (SqlCommand command = new SqlCommand(proName, conn))            {                command.CommandType = CommandType.StoredProcedure;                foreach (SqlParameter parm in parms)                    command.Parameters.Add(parm);                try                {                    conn.Open();                    transaction = conn.BeginTransaction();                    command.Transaction = transaction;                    command.ExecuteNonQuery();                    transaction.Commit();                    return true;                }                catch                {                    if (transaction != null)                        transaction.Rollback();                    return false;                }            }        }    }    /// <summary>    /// 执行插入、删除、更新操作(附带事务)    /// </summary>    /// <param name="proNames">存储过程名数组</param>    /// <param name="parms">参数数组</param>    /// <param name="conString">连接字符串</param>    /// <returns>执行结果:true or false</returns>    public static bool Proc_ExecuteNonQueryWithTrans(string[] proNames, SqlParameter[][] parms, string conString)    {        bool isNull = ArrayIsNullOrEmpty(proNames) || SqlParameterIsNullOrEmpty(parms) || string.IsNullOrEmpty(conString);        if (isNull)            return false;        using (SqlConnection conn = new SqlConnection(conString))        {            SqlTransaction transaction = null;            try            {                conn.Open();                transaction = conn.BeginTransaction();                for (int i = 0; i < proNames.Length; i++)                {                    SqlCommand command = new SqlCommand();                    command.Connection = conn;                    command.CommandType = CommandType.StoredProcedure;                    command.CommandText = proNames[i];                    command.Transaction = transaction;                    foreach (SqlParameter parm in parms[i])                        command.Parameters.Add(parm);                    command.ExecuteNonQuery();                }                transaction.Commit();            }            catch            {                if (transaction != null)                    transaction.Rollback();                return false;            }            return true;        }    }    #endregion    #endregion    #region 执行SQL语句    #region 查询数据    /// <summary>    /// 不带参数的查询    /// </summary>    /// <param name="selectSql">查询语句</param>    /// <param name="conString">连接字符串</param>    /// <returns>数据表</returns>    public static DataTable SQL_ExecuteDataTable(string selectSql, string conString)    {        if (string.IsNullOrEmpty(selectSql) || string.IsNullOrEmpty(conString))            return null;        DataTable dt = new DataTable();        using (SqlConnection conn = new SqlConnection(conString))        {            using (SqlCommand command = new SqlCommand())            {                command.Connection = conn;                command.CommandType = CommandType.Text;                command.CommandText = selectSql;                try                {                    conn.Open();                    using (SqlDataReader sr = command.ExecuteReader())                    {                        dt.Load(sr);                    }                    return dt;//返回一个表格                }                catch                {                    return null;                }            }        }    }    /// <summary>    /// 带参的查询    /// </summary>    /// <param name="selectSql">查询语句</param>    /// <param name="parms">参数</param>    /// <param name="conString">连接字符串</param>    /// <returns>数据表</returns>    public static DataTable SQL_ExecuteDataTable(string selectSql, SqlParameter[] parms, string conString)    {        bool isNull = SqlParameterIsNullOrEmpty(parms) || string.IsNullOrEmpty(selectSql) || string.IsNullOrEmpty(conString);        if (isNull)            return null;        DataTable dt = new DataTable();        using (SqlConnection conn = new SqlConnection(conString))        {            using (SqlCommand command = new SqlCommand(selectSql, conn))            {                foreach (SqlParameter parm in parms)                    command.Parameters.Add(parm);                using (SqlDataAdapter adpter = new SqlDataAdapter(command))                {                    try                    {                        adpter.Fill(dt);                        return dt;                    }                    catch                    {                        return null;                    }                }            }        }    }    /// <summary>    /// 不带参数的查询    /// </summary>    /// <param name="selectSql">查询语句</param>    /// <param name="conString">连接字符串</param>    /// <returns>查询结果</returns>    public static DataSet SQL_ExecuteDataSet(string selectSql, string conString)    {        if (string.IsNullOrEmpty(selectSql) || string.IsNullOrEmpty(conString))            return null;        DataSet ds = new DataSet();        using (SqlConnection conn = new SqlConnection(conString))        {            using (SqlDataAdapter adpter = new SqlDataAdapter(selectSql, conn))            {                try                {                    adpter.Fill(ds);                    return ds;                }                catch                {                    return null;                }            }        }    }    /// <summary>    /// 不带参数的查询    /// </summary>    /// <param name="selectSql">查询语句</param>    /// <param name="tbName">内存表表名</param>    /// <param name="conString">数据库连接字符串</param>    /// <returns>查询结果</returns>    public static DataSet SQL_ExecuteDataSet(string selectSql, string tbName, string conString)    {        if (string.IsNullOrEmpty(selectSql) || string.IsNullOrEmpty(conString) || string.IsNullOrEmpty(tbName))            return null;        DataSet ds = new DataSet();        using (SqlConnection conn = new SqlConnection(conString))        {            using (SqlDataAdapter adpter = new SqlDataAdapter(selectSql, conn))            {                try                {                    adpter.Fill(ds, tbName);                    return ds;                }                catch                {                    return null;                }            }        }    }    /// <summary>    /// 带参查询数据    /// </summary>    /// <param name="selectSql">查询语句</param>    /// <param name="parms">参数数组</param>    /// <param name="conString">连接字符串</param>    /// <returns>查询结果集</returns>    public static DataSet SQL_ExecuteDataSet(string selectSql, SqlParameter[] parms, string conString)    {        bool isNull = SqlParameterIsNullOrEmpty(parms) || string.IsNullOrEmpty(selectSql) || string.IsNullOrEmpty(conString);        if (isNull)            return null;        DataSet ds = new DataSet();        using (SqlConnection conn = new SqlConnection(conString))        {            using (SqlCommand command = new SqlCommand(selectSql, conn))            {                foreach (SqlParameter parm in parms)                    command.Parameters.Add(parm);                using (SqlDataAdapter adpter = new SqlDataAdapter(command))                {                    try                    {                        adpter.Fill(ds);                        return ds;                    }                    catch                    {                        return null;                    }                }            }        }    }    /// <summary>    /// 带参查询数据    /// </summary>    /// <param name="selectSql">查询语句</param>    /// <param name="parms">参数数组</param>    /// <param name="tbName">内存表表名</param>    /// <param name="conString">连接字符串</param>    /// <returns>查询结果集</returns>    public static DataSet SQL_ExecuteDataSet(string selectSql, SqlParameter[] parms, string tbName, string conString)    {        bool isNull = SqlParameterIsNullOrEmpty(parms) || string.IsNullOrEmpty(selectSql) || string.IsNullOrEmpty(tbName) || string.IsNullOrEmpty(conString);        if (isNull)            return null;        DataSet ds = new DataSet();        using (SqlConnection conn = new SqlConnection(conString))        {            using (SqlCommand command = new SqlCommand(selectSql, conn))            {                foreach (SqlParameter parm in parms)                    command.Parameters.Add(parm);                using (SqlDataAdapter adpter = new SqlDataAdapter(command))                {                    try                    {                        adpter.Fill(ds, tbName);                        return ds;                    }                    catch                    {                        return null;                    }                }            }        }    }    #endregion    #region 插入数据、更新数据、删除数据    /// <summary>    ///  执行插入、删除、更新操作    /// </summary>    /// <param name="opSql">执行操作的SQL语句</param>    /// <param name="eCount">影响的行数</param>    /// <param name="conString">连接字符串</param>    /// <returns>执行结果:true or false</returns>    public static bool SQL_ExecuteNonQuery(string opSql, out int eCount, string conString)    {        if (string.IsNullOrEmpty(opSql) || string.IsNullOrEmpty(conString))        {            eCount = -2;            return false;        }        using (SqlConnection conn = new SqlConnection(conString))        {            using (SqlCommand command = new SqlCommand(opSql, conn))            {                try                {                    conn.Open();                    eCount = command.ExecuteNonQuery();                    return true;                }                catch                {                    eCount = -1;                    return false;                }            }        }    }    /// <summary>    ///  执行插入、删除、更新操作(附带事务)    /// </summary>    /// <param name="opSql">执行操作的SQL语句</param>    /// <param name="eCount">影响的行数</param>    /// <param name="conString">连接字符串</param>    /// <returns>执行结果:true or false</returns>    public static bool SQL_ExecuteNonQueryWithTrans(string opSql, out int eCount, string conString)    {        if (string.IsNullOrEmpty(opSql) || string.IsNullOrEmpty(conString))        {            eCount = -2;            return false;        }        using (SqlConnection conn = new SqlConnection(conString))        {            SqlTransaction transaction = null;            using (SqlCommand command = new SqlCommand(opSql, conn))            {                try                {                    conn.Open();                    transaction = conn.BeginTransaction();                    command.Transaction = transaction;                    eCount = command.ExecuteNonQuery();                    transaction.Commit();                    return true;                }                catch                {                    if (transaction != null)                        transaction.Rollback();                    eCount = -1;                    return false;                }            }        }    }    /// <summary>    /// 执行插入、删除、更新操作    /// </summary>    /// <param name="opSql">执行操作的sql语句</param>    /// <param name="parms">参数数组</param>    /// <param name="eCount">影响的行数</param>    /// <param name="conString">连接字符串</param>    /// <returns>执行结果:true or false</returns>    public static bool SQL_ExecuteNonQuery(string opSql, SqlParameter[] parms, out int eCount, string conString)    {        bool isNull = SqlParameterIsNullOrEmpty(parms) || string.IsNullOrEmpty(opSql) || string.IsNullOrEmpty(conString);        if (isNull)        {            eCount = -2;            return false;        }        using (SqlConnection conn = new SqlConnection(conString))        {            using (SqlCommand command = new SqlCommand(opSql, conn))            {                command.CommandType = CommandType.Text;                foreach (SqlParameter parm in parms)                    command.Parameters.Add(parm);                try                {                    conn.Open();                    eCount = command.ExecuteNonQuery();                    return true;                }                catch                {                    eCount = -1;                    return false;                }            }        }    }    /// <summary>    /// 执行插入、删除、更新操作(附带事务)    /// </summary>    /// <param name="opSql">执行操作的sql语句</param>    /// <param name="parms">参数数组</param>    /// <param name="eCount">影响的行数</param>    /// <param name="conString">连接字符串</param>    /// <returns>执行结果:true or false</returns>    public static bool SQL_ExecuteNonQueryWithTrans(string opSql, SqlParameter[] parms, out int eCount, string conString)    {        bool isNull = SqlParameterIsNullOrEmpty(parms) || string.IsNullOrEmpty(opSql) || string.IsNullOrEmpty(conString);        if (isNull)        {            eCount = -2;            return false;        }        using (SqlConnection conn = new SqlConnection(conString))        {            SqlTransaction transaction = null;            using (SqlCommand command = new SqlCommand(opSql, conn))            {                command.CommandType = CommandType.Text;                foreach (SqlParameter parm in parms)                    command.Parameters.Add(parm);                try                {                    conn.Open();                    transaction = conn.BeginTransaction();                    command.Transaction = transaction;                    eCount = command.ExecuteNonQuery();                    transaction.Commit();                    return true;                }                catch                {                    eCount = -1;                    transaction.Rollback();                    return false;                }            }        }    }    /// <summary>    /// 执行多次不同插入、删除、更新操作(附带事务)    /// </summary>    /// <param name="opSqls">执行操作的sql语句数组</param>    /// <param name="conString">连接字符串</param>    /// <returns>执行结果:true or false</returns>    public static bool SQL_ExecuteNonQueryWithTrans(string[] opSqls, string conString)    {        bool isNull = ArrayIsNullOrEmpty(opSqls) || string.IsNullOrEmpty(conString);        if (isNull)            return false;        using (SqlConnection conn = new SqlConnection(conString))        {            SqlTransaction transaction = null;            using (SqlCommand command = new SqlCommand())            {                command.Connection = conn;                command.CommandType = CommandType.Text;                try                {                    conn.Open();                    transaction = conn.BeginTransaction();                    command.Transaction = transaction;                    foreach (string opSql in opSqls)                    {                        command.CommandText = opSql;                        command.ExecuteNonQuery();                    }                    transaction.Commit();                }                catch                {                    if (transaction != null)                        transaction.Rollback();                    return false;                }            }            return true;        }    }    /// <summary>    /// 执行多次不同插入、删除、更新操作    /// </summary>    /// <param name="opSqls">执行操作的sql语句数组</param>    /// <param name="effectRowCout">影响的行数</param>    /// <param name="conString">连接字符串</param>    /// <returns>执行结果:true or false</returns>    public static bool SQL_ExecuteNonQueryWithTrans(string[] opSqls, out int effectRowCout, string conString)    {        bool isNull = ArrayIsNullOrEmpty(opSqls) || string.IsNullOrEmpty(conString);        if (isNull)        {            effectRowCout = -1;            return false;        }        using (SqlConnection conn = new SqlConnection(conString))        {            SqlTransaction transaction = null;            using (SqlCommand command = new SqlCommand())            {                command.Connection = conn;                command.CommandType = CommandType.Text;                try                {                    conn.Open();                    transaction = conn.BeginTransaction();                    command.Transaction = transaction;                    effectRowCout = 0;                    foreach (string opsql in opSqls)                    {                        command.CommandText = opsql;                        effectRowCout += command.ExecuteNonQuery();                    }                    transaction.Commit();                }                catch                {                    effectRowCout = -1;                    if (transaction != null)                        transaction.Rollback();                    return false;                }            }            return true;        }    }    /// <summary>    /// 执行插入、删除、更新操作    /// </summary>    /// <param name="opSql">执行操作的sql语句</param>    /// <param name="conString">连接字符串</param>    /// <returns>执行结果:true or false</returns>    public static bool SQL_ExecuteNonQuery(string opSql, string conString)    {        if (string.IsNullOrEmpty(opSql) || string.IsNullOrEmpty(conString))            return false;        using (SqlConnection conn = new SqlConnection(conString))        {            using (SqlCommand command = new SqlCommand(opSql, conn))            {                try                {                    conn.Open();                    command.ExecuteNonQuery();//可以进行插入                    return true;                }                catch                {                    return false;                }            }        }    }    /// <summary>    /// 执行插入、删除、更新操作(附带事务)    /// </summary>    /// <param name="opSql">执行操作的sql语句</param>    /// <param name="conString">连接字符串</param>    /// <returns>执行结果:true or false</returns>    public static bool SQL_ExecuteNonQueryWithTrans(string opSql, string conString)    {        if (string.IsNullOrEmpty(opSql) || string.IsNullOrEmpty(conString))            return false;        using (SqlConnection conn = new SqlConnection(conString))        {            SqlTransaction transaction = null;            using (SqlCommand command = new SqlCommand(opSql, conn))            {                try                {                    conn.Open();                    transaction = conn.BeginTransaction();                    command.Transaction = transaction;                    command.ExecuteNonQuery();                    transaction.Commit();                    return true;                }                catch                {                    if (transaction != null)                        transaction.Rollback();                    return false;                }            }        }    }    /// <summary>    /// 执行插入、删除、更新操作    /// </summary>    /// <param name="opSql">执行操作的SQL语句</param>    /// <param name="parms">参数数组</param>    /// <param name="conString">连接字符串</param>    /// <returns>执行结果:true or false</returns>    public static bool SQL_ExecuteNonQuery(string opSql, SqlParameter[] parms, string conString)    {        bool isNull = SqlParameterIsNullOrEmpty(parms) || string.IsNullOrEmpty(opSql) || string.IsNullOrEmpty(conString);        if (isNull)            return false;        using (SqlConnection conn = new SqlConnection(conString))        {            using (SqlCommand command = new SqlCommand(opSql, conn))            {                command.CommandType = CommandType.Text;                foreach (SqlParameter parm in parms)                    command.Parameters.Add(parm);                try                {                    conn.Open();                    command.ExecuteNonQuery();                    return true;                }                catch                {                    return false;                }            }        }    }    /// <summary>    /// 执行插入、删除、更新操作(附带事务)    /// </summary>    /// <param name="opSql">执行操作的SQL语句</param>    /// <param name="parms">参数数组</param>    /// <param name="conString">连接字符串</param>    /// <returns>执行结果:true or false</returns>    public static bool SQL_ExecuteNonQueryWithTrans(string opSql, SqlParameter[] parms, string conString)    {        bool isNull = SqlParameterIsNullOrEmpty(parms) || string.IsNullOrEmpty(opSql) || string.IsNullOrEmpty(conString);        if (isNull)            return false;        using (SqlConnection conn = new SqlConnection(conString))        {            SqlTransaction transaction = null;            using (SqlCommand command = new SqlCommand(opSql, conn))            {                command.CommandType = CommandType.Text;                foreach (SqlParameter parm in parms)                    command.Parameters.Add(parm);                try                {                    conn.Open();                    transaction = conn.BeginTransaction();                    command.Transaction = transaction;                    command.ExecuteNonQuery();                    transaction.Commit();                    return true;                }                                    catch                {                    if (transaction != null)                        transaction.Rollback();                    return false;                }                           }        }    }    /// <summary>    /// 执行插入、删除、更新操作(附带事务)    /// </summary>    /// <param name="opSqls">sql 语句数组</param>    /// <param name="parms">参数数组</param>    /// <param name="conString">连接字符串</param>    /// <returns>执行结果:true or false</returns>    public static bool SQL_ExecuteNonQueryWithTrans(string[] opSqls, SqlParameter[][] parms, string conString)    {        bool isNull = ArrayIsNullOrEmpty(opSqls) || SqlParameterIsNullOrEmpty(parms) || string.IsNullOrEmpty(conString);        if (isNull)            return false;        using (SqlConnection conn = new SqlConnection(conString))        {            SqlTransaction transaction = null;            try            {                conn.Open();                transaction = conn.BeginTransaction();                for (int i = 0; i < opSqls.Length; i++)                {                    SqlCommand command = new SqlCommand();                    command.Connection = conn;                    command.CommandType = CommandType.Text;                    command.CommandText = opSqls[i];                    command.Transaction = transaction;                    foreach (SqlParameter parm in parms[i])                        command.Parameters.Add(parm);                    command.ExecuteNonQuery();                }                transaction.Commit();            }            catch            {                if (transaction != null)                    transaction.Rollback();                return false;            }            return true;        }    }    #endregion    #endregion    #region  更新DataGridview 中的 DataSet到数据库中相应的表    /// <summary>    /// 更新DataGridview中的DataSet到数据库中相应的表    /// </summary>    /// <param name="selectSql">sql select语句</param>    ///<param name="ds">DataSet结果集</param>     /// <param name="tbName">DataGridView 中绑定的表名</param>    /// <param name="conString">连接字符串</param>    /// <returns></returns>    public static bool UpdateDataSetToDB(string selectSql, DataSet ds, string tbName, string conString)    {        bool isNull = string.IsNullOrEmpty(selectSql) || ((ds == null || ds.Tables.Count < 1) ? true : false) || string.IsNullOrEmpty(tbName) || string.IsNullOrEmpty(conString);        if (isNull)            return false;        using (SqlConnection conn = new SqlConnection(conString))        {            using (SqlDataAdapter adapter = new SqlDataAdapter(selectSql, conn))            {                try                {                    using (SqlCommandBuilder sqlCB = new SqlCommandBuilder(adapter))                    {                        adapter.Update(ds, tbName);                        ds.AcceptChanges();                        return true;                    }                }                catch                {                    return false;                }            }        }    }    #endregion}