⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbhelpersql.cs

📁 【原创】很多情况下
💻 CS
📖 第 1 页 / 共 4 页
字号:
                {
                    try
                    {
                        Conn.Open();
                        obj = Cmd.ExecuteScalar();
                        if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
                        {
                            obj = null;
                        }
                    }
                    catch (System.Data.SqlClient.SqlException e)
                    {
                        throw new Exception(e.Message);
                    }
                    finally
                    {
                        Conn.Close();
                    }
                }
            }
            return obj;
        }        
        #endregion

        #region 执行查询语句,返回SqlDataReader
        /// <summary>
        /// 执行查询语句,返回SqlDataReader
        /// </summary>
        /// <param name="strSQL">查询语句</param>
        /// <returns>SqlDataReader</returns>
        public static SqlDataReader ExecuteReader(string strSQL)
        {
            SqlConnection Conn = new SqlConnection(SQLConString);
            SqlCommand Cmd = new SqlCommand(strSQL, Conn);
            SqlDataReader Reader = null;
            try
            {
                Conn.Open();
                Reader = Cmd.ExecuteReader(CommandBehavior.CloseConnection);
            }
            catch (System.Data.SqlClient.SqlException e)
            {
                Conn.Close ();
                throw new Exception(e.Message);
            }
            return Reader;
        }
        #endregion

        #region 执行查询语句,返回DataSet
        /// <summary>
        /// 执行查询语句,返回DataSet
        /// </summary>
        /// <param name="strSQL">SQL语句</param>
        /// <returns>DataSet</returns>
        public static DataSet Query(string strSQL)
        {
            DataSet ds = new DataSet();
            using (SqlConnection Conn = new SqlConnection(SQLConString))
            {                
                try
                {
                    Conn.Open();
                    SqlDataAdapter adapter = new SqlDataAdapter(strSQL, Conn);
                    adapter.Fill(ds, "ds");
                }
                catch (System.Data.SqlClient.SqlException ex)
                {
                    throw new Exception(ex.Message);
                }
                finally
                {
                    Conn.Close();
                }               
            }
            return ds;
        }

        /// <summary>
        /// 执行查询语句,设置超时时间,返回DataSet
        /// </summary>
        /// <param name="strSQL">SQL语句</param>
        /// <param name="Times">超时时间</param>
        /// <returns>DataSet</returns>
        public DataSet Query(string strSQL, int Times)
        {
            using (SqlConnection Conn = new SqlConnection(SQLConString))
            {
                DataSet ds = new DataSet();
                try
                {
                    Conn.Open();
                    SqlDataAdapter command = new SqlDataAdapter(strSQL, Conn);
                    command.SelectCommand.CommandTimeout = Times;
                    command.Fill(ds, "ds");
                }
                catch (System.Data.SqlClient.SqlException ex)
                {
                    throw new Exception(ex.Message);
                }
                finally
                {
                    Conn.Close();
                }
                return ds;
            }
        }

       
        #endregion

        #endregion                

        #region 执行简单SQL语句(重写)(需传递链接字符串的)

        #region 执行SQL语句,返回影响的记录数(需传递数据库链接字符串)
        /// <summary>
        /// 执行SQL语句,返回影响的记录数(需传递数据库链接字符串)
        /// </summary>
        /// <param name="strSQL">SQL语句</param>
        /// <param name="SQLConString">数据库链接字符串</param>
        /// <param name="HaveConString">true/false均可,只做为重写的选择</param>
        /// <returns>影响的记录数</returns>
        public static int ExecuteSql(string strSQL, string SQLConString, bool HaveConString)
        {
            using (SqlConnection Conn = new SqlConnection(SQLConString))
            {
                using (SqlCommand Cmd = new SqlCommand(strSQL, Conn))
                {
                    try
                    {
                        Conn.Open();
                        int intRows = Cmd.ExecuteNonQuery();
                        return intRows;
                    }
                    catch (System.Data.SqlClient.SqlException E)
                    {
                        Conn.Close();
                        throw new Exception(E.Message);
                    }
                }
            }
        }
        #endregion 

        #region 执行多条SQL语句,实现数据库事务,返回事务中全部语句共影响的行数(需传递链接字符串)
        /// <summary>
        /// 执行多条SQL语句,实现数据库事务,返回事务中全部语句共影响的行数(需传递链接字符串)等于0成功但无影响记录,大于0成功,小于0失败
        /// </summary>
        /// <param name="SQLStringList">多条SQL语句</param>	
        /// <param name="SQLConString">数据库链接字符串</param>
        /// <returns>返回事务中全部语句共影响的行数</returns>
        public static int ExecuteSqlTran(ArrayList SQLStringList, string SQLConString)
        {
            int intResult = 0;
            using (SqlConnection Conn = new SqlConnection(SQLConString))
            {
                using (SqlCommand Cmd = new SqlCommand())
                {
                    Conn.Open();
                    Cmd.Connection = Conn;
                    SqlTransaction DbTrans = Conn.BeginTransaction();
                    Cmd.Transaction = DbTrans;
                    try
                    {
                        for (int i = 0; i < SQLStringList.Count; i++)
                        {
                            string strSQL = SQLStringList[i].ToString();
                            if (strSQL.Trim().Length > 1)
                            {
                                Cmd.CommandText = strSQL;
                                intResult += Cmd.ExecuteNonQuery();
                            }
                        }
                        //事务提交
                        DbTrans.Commit();
                    }
                    catch (System.Data.SqlClient.SqlException E)
                    {
                        intResult = -1;
                        DbTrans.Rollback();
                        throw new Exception(E.Message);
                    }
                    finally
                    {
                        Conn.Close();
                    }
                }
            }
            return intResult;
        }
        #endregion

        #region 执行多条SQL语句,没有事务处理,多条语句串行执行,失败返回-1 ExecSampleSQL(需传递链接字符串)
        /// <summary>
        /// 执行单条SQL语句,失败返回-1 (多条也按单条执行,没有事务处理) (需传递链接字符串)
        /// </summary>
        /// <param name="SQLStringList">SQL语句集</param>
        /// <param name="SQLConString">链接字符串</param>
        /// <returns>失败返回-1,成功返回已成功执行的SQL条数</returns>
        public static int ExecSampleSQL(ArrayList SQLStringList, string SQLConString)
        {
            int Val = 0;
            using (System.Data.SqlClient.SqlConnection Conn = new SqlConnection(SQLConString))
            {
                using (System.Data.SqlClient.SqlCommand Cmd = new SqlCommand())
                {
                    Cmd.Connection = Conn;
                    try
                    {
                        Conn.Open();
                        for (int iCnt = 0; iCnt < SQLStringList.Count; iCnt++)
                        {
                            if (SQLStringList[iCnt].ToString() == "")
                            {
                                continue;
                            }
                            Cmd.CommandText = SQLStringList[iCnt].ToString().Trim();
                            Cmd.ExecuteNonQuery();
                            Val++;
                        }
                    }
                    catch (Exception e)
                    {
                        Val = -1;
                        throw new Exception(e.Message);
                    }
                    finally
                    {
                        Conn.Close();
                    }
                }
            }
            return Val;
        }

        /// <summary>
        /// 执行单条SQL语句,失败返回-1 (多条也按单条执行,没有事务处理)(需传递链接字符串)
        /// </summary>
        /// <returns>失败返回-1,成功返回已成功执行的SQL条数</returns>
        public static int ExecSampleSQL(string[] SQLStringList, string SQLConString)
        {
            int Val = 0;
            using (System.Data.SqlClient.SqlConnection Conn = new SqlConnection(SQLConString))
            {
                using (System.Data.SqlClient.SqlCommand Cmd = new SqlCommand())
                {
                    Cmd.Connection = Conn;
                    try
                    {
                        Conn.Open();
                        for (int iCnt = 0; iCnt < SQLStringList.Length; iCnt++)
                        {
                            if (SQLStringList[iCnt].ToString() == "")
                            {
                                continue;
                            }
                            Cmd.CommandText = SQLStringList[iCnt].ToString().Trim();
                            Cmd.ExecuteNonQuery();
                            Val++;
                        }
                    }
                    catch (Exception e)
                    {
                        Val = -1;
                        throw new Exception(e.Message);
                    }
                    finally
                    {
                        Conn.Close();
                    }
                }
            }
            return Val;
        }
        #endregion

        #region 执行带一个存储过程参数的的SQL语句(需传递连接件字符串)
        /// <summary>
        /// 执行带一个存储过程参数的的SQL语句(需传递连接件字符串)
        /// </summary>
        /// <param name="strSQL">SQL语句</param>
        /// <param name="ParContent">参数内容,比如一个字段是格式复杂的文章,有特殊符号,可以通过这个方式添加</param>
        /// <param name="SQLConString">链接字符串</param>
        /// <returns>影响的记录数</returns>
        public static int ExecuteSql(string strSQL, string ParContent, string SQLConString)
        {
            int intRows = -1;
            using (SqlConnection Conn = new SqlConnection(SQLConString))
            {
                using (SqlCommand Cmd = new SqlCommand(strSQL, Conn))
                {
                    System.Data.SqlClient.SqlParameter Par = new System.Data.SqlClient.SqlParameter("@ParContent", SqlDbType.NText);

                    Par.Value = ParContent;
                    Cmd.Parameters.Add(Par);
                    try
                    {
                        Conn.Open();
                        intRows = Cmd.ExecuteNonQuery();
                    }
                    catch (System.Data.SqlClient.SqlException E)
                    {
                        throw new Exception(E.Message);
                    }
                    finally
                    {
                        Conn.Close();
                    }

                }
            }
            return intRows;
        }
        #endregion

        #region 向数据库里插入图像格式的字段 (需传递链接字符串)
        /// <summary>
        /// 向数据库里插入图像格式的字段 (需传递链接字符串)
        /// </summary>
        /// <param name="strSQL">SQL语句</param>
        /// <param name="fs">图像字节,数据库的字段类型为Image的情况</param>
        /// <param name="SQLConString">链接字符串</param>
        /// <returns>影响的记录数</returns>
        public static int ExecuteSqlInsertImg(string strSQL, byte[] fs, string SQLConString)
        {
            int intRows = -1;
            using (SqlConnection Conn = new SqlConnection(SQLConString))
            {
                using (SqlCommand Cmd = new SqlCommand(strSQL, Conn))
                {
                    System.Data.SqlClient.SqlParameter Par = new System.Data.SqlClient.SqlParameter("@fs", SqlDbType.Image);
                    Par.Value = fs;
                    Cmd.Parameters.Add(Par);
                    try
                    {
                        Conn.Open();
                        intRows = Cmd.ExecuteNonQuery();
                    }
                    catch (System.Data.SqlClient.SqlException E)
                    {
                        throw new Exception(E.Message);
                    }
                    finally
                    {
                        Conn.Close();
                    }
                }
            }
            return intRows;
        }
        #endregion

        #region 执行一条计算查询结果语句,返回查询结果(object)(需传递链接字符串)
        /// <summary>
        /// 执行一条计算查询结果语句,返回查询结果(object)(需传递链接字符串)
        /// </summary>
        /// <param name="strSQL">计算查询结果语句</param>
        /// <param name="strCon">连接字符串</param>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -