分享

sqlHelper_DataBase

 zww_blog 2012-03-07

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace RPMO.DAL
{
    public class DataBases
    {
        //获取数据库连接字符串
        static string str = System.Configuration.ConfigurationManager.ConnectionStrings["SharePoint_RPMO_SiteConnectionString"].ToString();
        //static string str = "Data Source=10.12.17.32;Initial Catalog=issuetracker;uid=sa;pwd=hisoft;";
        //创建连接字符串对象

        SqlConnection con = new SqlConnection(str);
        //创建命令对象
        SqlCommand cmd = null;
        //创建连接对象
        SqlDataAdapter da = null;
        DataSet ds = null;
        //创建一个表对象
        DataTable dt = null;
        //SqlParameter[] values = null;
        //string sql = null;

        #region 具体数据查询的方法

        /// <summary>
        /// 调用方法查询一个或多个表的信息,并返回DataSet类型值的方法
        /// </summary>
        /// <param name="sql">sql语句或存储过程名</param>
        /// <param name="re">是否是存储过程</param>
        /// <param name="values">参数</param>
        /// <returns>返回DataSet</returns>
        public DataSet GetDataSet(string sql, bool re, params SqlParameter[] values)
        {
            ds = new DataSet();
            da = new SqlDataAdapter(sql, con);

            if (re)
            {
                //定义命令类型
                da.SelectCommand.CommandType = CommandType.StoredProcedure;
            }//if (re)//判断命令类型

            if (values != null)
            {
                //添加参数
                da.SelectCommand.Parameters.AddRange(values);
            }//if (values != null)//判断参数是否存在

            try
            {
                da.Fill(ds);

            }//try
            catch (SqlException ex)
            {
                //写错误日志


            }//try catch(SqlException ex)捕获数据库异常
            finally
            {

                if (con.State == ConnectionState.Open)
                {
                    //关闭连接
                    con.Close();
                }//if (con.State == ConnectionState.Open)关闭连接

            }//try catch(SqlException ex) finally

            return ds;

        }//public DataSet GetDataSet(string sql, bool re, params SqlParameter[] values)

        /// <summary>
        /// 调用方法查询单个表的信息,并返回DataTable类型值的方法
        /// </summary>
        /// <param name="sql">sql语句或存储过程名</param>
        /// <param name="re">是否是存储过程</param>
        /// <param name="values">参数</param>
        /// <returns>返回DataTable</returns>
        public DataTable GetDataTable(string sql, bool re, params SqlParameter[] values)
        {
            dt = new DataTable();
            da = new SqlDataAdapter(sql, con);

            if (re)
            {
                //定义命令类型
                da.SelectCommand.CommandType = CommandType.StoredProcedure;
            }//if (re)

            if (values != null)
            {
                //添加参数
                da.SelectCommand.Parameters.AddRange(values);
            }//if (values != null)

            try
            {
                da.Fill(dt);
            }//try
            catch (SqlException ex)
            {
                //写错误日志


            }//try catch(SqlException ex)
            finally
            {

                if (con.State == ConnectionState.Open)
                {
                    //关闭连接
                    con.Close();
                }//if (con.State == ConnectionState.Open)

            }//try catch(SqlException ex) finally

            return dt;

        }//public DataTable GetDataTable(string sql, bool re, params SqlParameter[] values)

        /// <summary>
        /// 调用方法查询单个值,返回object类型值的方法
        /// </summary>
        /// <param name="sql">sql语句或存储过程名</param>
        /// <param name="re">是否是存储过程</param>
        /// <param name="values">参数</param>
        /// <returns>返回object</returns>
        public object GetValue(string sql, bool re, params SqlParameter[] values)
        {
            object strReturn = null;
            try
            {
                cmd = new SqlCommand(sql, con);
                if (re)
                {
                    //定义命令类型
                    cmd.CommandType = CommandType.StoredProcedure;
                }//if (re)

                if (values != null)
                {
                    //添加参数
                    cmd.Parameters.AddRange(values);
                }//if (values != null)


                if (con.State == ConnectionState.Closed)
                {
                    //打开连接
                    con.Open();
                }//if(con.State == ConnectionState.Closed)
                //读取一行一列的数据
                strReturn = cmd.ExecuteScalar();
                //如果返回值是数据库空值类型
                if (strReturn == DBNull.Value)
                {
                    strReturn = null;
                }
            }//try
            catch (SqlException ex)
            {
                //写错误日志

            }//try catch(SqlException ex)
            finally
            {

                if (con.State == ConnectionState.Open)
                {
                    //关闭连接
                    con.Close();
                }//if (con.State == ConnectionState.Open)

            }//try catch(SqlException ex) finally

            return strReturn;

        }//public object GetValue(string sql, bool re, params SqlParameter[] values)

        /// <summary>
        /// 调用方法更新数据库,并返回受影响行数
        /// </summary>
        /// <param name="sql">sql语句或存储过程名</param>
        /// <param name="re">是否是存储过程</param>
        /// <param name="values">参数</param>
        /// <returns>返回受影响行数</returns>
        public int ProExecuteCommand(string sql, bool re, params SqlParameter[] values)
        {
            int count = 0;
            cmd = new SqlCommand(sql, con);

            if (re)
            {
                //定义命令类型
                cmd.CommandType = CommandType.StoredProcedure;
            }//if(re)

            if (values != null)
            {
                //向命令对象的参数集合里添加参数
                cmd.Parameters.AddRange(values);
            }//if(values != null)

            try
            {

                if (con.State == ConnectionState.Closed)
                {
                    //打开连接
                    con.Open();
                }//if(con.State == ConnectionState.Closed)

                count = cmd.ExecuteNonQuery();//  执行命令,返回受影响行数
            }//try
            catch (SqlException ex)
            {
                //写错误日志

            }//try catch(SqlException ex)
            finally
            {

                if (con.State == ConnectionState.Open)
                {
                    //关闭连接
                    con.Close();
                }//if (con.State == ConnectionState.Open)

            }//try catch(SqlException ex) finally

            return count;

        }//public int ProExecuteCommand(string sql, bool re, params SqlParameter[] values)

        #endregion
    }
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约