namespace Mode.DAL
{
    public static class DBHelper
    {        private static SqlConnection connection;
        public static SqlConnection Connection
        {
            get 
            {
                string connectionString = ConfigurationManager.ConnectionStrings   ["MyBookShop"].ConnectionString;
                if (connection == null)
                {
                    connection = new SqlConnection(connectionString);
                    connection.Open();
                }
                else if (connection!=null)
                {
                    if(connection.State!= ConnectionState.Closed){
                        connection.Close();
                        connection.Open();
                    }
                }
                else if (connection.State == System.Data.ConnectionState.Broken)
                {
                    connection.Close();
                    connection.Open();
                }
                return connection;
            }
        }
        public static int ExecuteCommand(string safeSql)
        {
            SqlCommand cmd = new SqlCommand(safeSql, Connection);
            int result = cmd.ExecuteNonQuery();
            return result;
        }        public static int ExecuteCommand(string sql, params SqlParameter[] values)
        {
            SqlCommand cmd = new SqlCommand(sql, Connection);
            cmd.Parameters.AddRange(values);
            return cmd.ExecuteNonQuery();
        }        public static int GetScalar(string safeSql)
        {
            SqlCommand cmd = new SqlCommand(safeSql, Connection);
            int result = Convert.ToInt32(cmd.ExecuteScalar());
            return result;
        }        public static int GetScalar(string sql,params SqlParameter[] values)
        {
            SqlCommand cmd = new SqlCommand(sql, Connection);
            cmd.Parameters.AddRange(values);
            int result = Convert.ToInt32(cmd.ExecuteScalar());
            return result;
        }
        public static int GetScalar(string sql,CommandType type, params SqlParameter[] values)
        {
            SqlCommand cmd = new SqlCommand(sql, Connection);
            cmd.CommandType = type;
            cmd.Parameters.AddRange(values);
            int result = Convert.ToInt32(cmd.ExecuteScalar());
            return result;
        }
        public static SqlDataReader GetReader(string safeSql)
        {
            SqlCommand cmd = new SqlCommand(safeSql, Connection);
            SqlDataReader reader = cmd.ExecuteReader();
            return reader;
        }        public static SqlDataReader GetReader(string sql, params SqlParameter[] values)
        {
            SqlCommand cmd = new SqlCommand(sql, Connection);
            cmd.Parameters.AddRange(values);
            SqlDataReader reader = cmd.ExecuteReader();
            return reader;
        }
        public static SqlDataReader GetReader(string sql,CommandType type ,params SqlParameter[] values)
        {
            SqlCommand cmd = new SqlCommand(sql, Connection);
            cmd.CommandType = type;
            cmd.Parameters.AddRange(values);
            SqlDataReader reader = cmd.ExecuteReader();
            return reader;
        }
        public static DataTable GetDataSet(string safeSql)
        {
            DataSet ds = new DataSet();
            SqlCommand cmd = new SqlCommand(safeSql, Connection);
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            da.Fill(ds);
            return ds.Tables[0];
        }        public static DataTable GetDataSet(string sql, params SqlParameter[] values)
        {
            DataSet ds = new DataSet();
            SqlCommand cmd = new SqlCommand(sql, Connection);
            cmd.Parameters.AddRange(values);
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            da.Fill(ds);
            return ds.Tables[0];
        }    }
}

解决方案 »

  1.   

    你可以参考这个里面的,都差不多
    http://blog.csdn.net/LCL_data/archive/2009/07/19/4361258.aspx
      

  2.   

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Configuration;
    using System.Data;
    using System.Data.SqlClient;
    using System.Web;
    //using System.Web.Security;namespace Magitek.DAL
    {
        /// <summary>
        /// 数据访问公共类
        /// </summary>
        public class DBHelper
        {
            private SqlConnection connection; //数据库连接        /// <summary>
            /// 不带参数初始化 DBHelper 类的新实例。
            /// </summary>
            public DBHelper()
            {          
            }        /// <summary>
            /// 打开一个数据库连接。
            /// </summary>
            private void OpenConnection()
            {
                string connectionString = "";
                try
                {
                    connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
                    if (connection == null)
                    {
                        connection = new SqlConnection(connectionString);
                        connection.Open();
                    }
                    else if (connection.State == System.Data.ConnectionState.Closed)
                    {
                        connection.Open();
                    }
                    else if (connection.State == System.Data.ConnectionState.Broken)
                    {
                        connection.Close();
                        connection.Open();
                    }
                }
                catch(Exception ex)
                {
                    throw new ApplicationException("数据库连接失败!\n"+ex.Message+"\n"+connectionString);
                }
            }        /// <summary>
            /// 关闭数据库连接。
            /// </summary>
            private void CloseConnection()
            {
                if (connection != null)
                {
                    connection.Close();
                }
            }        /// <summary>
            /// 对连接执行 T-SQL语句并返回受影响的行数。
            /// </summary>
            /// <param name="safeSql">T-SQL语句</param>
            /// <returns></returns>
            public int ExecuteCommand(string safeSql)
            {
                OpenConnection();
                SqlCommand cmd = new SqlCommand(safeSql, connection);
                int result = cmd.ExecuteNonQuery();
                CloseConnection();
                return result;
            }        /// <summary>
            /// 对连接执行 T-SQL语句并返回受影响的行数。
            /// </summary>
            /// <param name="safeSql">T-SQL语句</param>
            /// <param name="values">SqlParameter参数</param>
            /// <returns></returns>
            public int ExecuteCommand(string sql, params SqlParameter[] values)
            {
                try
                {
                    OpenConnection();
                    SqlCommand cmd = new SqlCommand(sql, connection);
                    cmd.Parameters.AddRange(values);
                    return cmd.ExecuteNonQuery();
                }
                finally
                {
                    CloseConnection();
                }
            }        /// <summary>
            /// 执行查询,并返回查询所返回的结果集中的第一行第一列。忽略其他行或列。
            /// </summary>
            /// <param name="safeSql">T-SQL语句</param>
            /// <returns></returns>
            public int GetScalar(string safeSql)
            {
                try
                {
                    OpenConnection();
                    SqlCommand cmd = new SqlCommand(safeSql, connection);
                    int result = Convert.ToInt32(cmd.ExecuteScalar());
                    return result;
                }
                finally
                {
                    CloseConnection();
                }
            }        /// <summary>
            /// 执行查询,并返回查询所返回的结果集中的第一行第一列。忽略其他行或列。
            /// </summary>
            /// <param name="safeSql">T-SQL语句</param>
            /// <param name="values">SqlParameter参数</param>
            /// <returns></returns>
            public int GetScalar(string sql, params SqlParameter[] values)
            {
                try
                {
                    OpenConnection();
                    SqlCommand cmd = new SqlCommand(sql, connection);
                    cmd.Parameters.AddRange(values);
                    int result = Convert.ToInt32(cmd.ExecuteScalar());
                    return result;
                }
                finally
                {
                    CloseConnection();
                }
            }        /// <summary>
            /// 查询并获取一个SqlDataReader对象。
            /// </summary>
            /// <param name="safeSql">T-SQL语句</param>
            /// <returns></returns>
            public SqlDataReader GetReader(string safeSql)
            {
                OpenConnection();
                SqlCommand cmd = new SqlCommand(safeSql, connection);
                SqlDataReader reader = cmd.ExecuteReader();
                return reader;
            }        /// <summary>
            /// 查询并获取一个SqlDataReader对象。
            /// </summary>
            /// <param name="sql">T-SQL语句</param>
            /// <param name="values">SqlParameter参数</param>
            /// <returns></returns>
            public SqlDataReader GetReader(string sql, params SqlParameter[] values)
            {
                OpenConnection();
                SqlCommand cmd = new SqlCommand(sql, connection);
                cmd.Parameters.AddRange(values);
                SqlDataReader reader = cmd.ExecuteReader();
                return reader;
            }        /// <summary>
            /// 查询并获取一个DataTable对象。
            /// </summary>
            /// <param name="safeSql">T-SQL语句</param>
            /// <returns></returns>
            public DataTable GetDataTable(string safeSql)
            {
                try
                {
                    OpenConnection();
                    DataSet ds = new DataSet();
                    SqlCommand cmd = new SqlCommand(safeSql, connection);
                    SqlDataAdapter da = new SqlDataAdapter(cmd);
                    da.Fill(ds);
                    return ds.Tables[0];
                }
                finally
                {
                    CloseConnection();
                }
            }
           
            /// <summary>
            /// 查询并获取一个DataTable对象。
            /// </summary>
            /// <param name="sql">T-SQL语句</param>
            /// <param name="values">SqlParameter参数</param>
            /// <returns></returns>
            public DataTable GetDataTable(string sql, params SqlParameter[] values)
            {
                try
                {
                    OpenConnection();
                    DataSet ds = new DataSet();
                    SqlCommand cmd = new SqlCommand(sql, connection);
                    cmd.Parameters.AddRange(values);
                    SqlDataAdapter da = new SqlDataAdapter(cmd);
                    da.Fill(ds);
                    return ds.Tables[0];
                }
                finally
                {
                    CloseConnection();
                }
            }        /// <summary>
            /// 查询并返回一个结果集对象。
            /// </summary>
            /// <param name="sql">T-SQL语句</param>
            /// <returns></returns>
            public DataSet GetDataSet(string sql)
            {
                try
                {
                    OpenConnection();
                    DataSet ds = new DataSet();
                    SqlCommand cmd = new SqlCommand(sql, connection);
                    SqlDataAdapter da = new SqlDataAdapter(cmd);
                    da.Fill(ds);
                    return ds;
                }
                finally
                {
                    CloseConnection();
                }
            }        /// <summary>
            /// 查询并返回一个结果集对象。
            /// </summary>
            /// <param name="sql">T-SQL语句</param>
            /// <param name="values">SqlParameter参数</param>
            /// <returns></returns>
            public DataSet GetDataSet(string sql, params SqlParameter[] values)
            {
                try
                {
                    OpenConnection();
                    DataSet ds = new DataSet();
                    SqlCommand cmd = new SqlCommand(sql, connection);
                    cmd.Parameters.AddRange(values);
                    SqlDataAdapter da = new SqlDataAdapter(cmd);
                    da.Fill(ds);
                    return ds;
                }
                finally
                {
                    CloseConnection();
                }
            }        //public static string S2MD5(string str)
            //{
            //    return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5");
            //}
        }
    }
      

  3.   

    lz
    这里面的问题很多,不是几行注释就能明白的,希望lz认识的学习一下,会有好处的,不懂的可以直接来问我
      

  4.   

    namespace Mode.DAL //命名空间
    {
        public static class DBHelper
        {        private static SqlConnection connection; //申明一个静态的连接对象
            public static SqlConnection Connection //属性
            {
                get
                {
                    string connectionString = ConfigurationManager.ConnectionStrings["MyBookShop"].ConnectionString;//从配置文件中读连接字符串
                    if (connection == null)//如果连接为空
                    {
                        connection = new SqlConnection(connectionString);//创建一个新的连接对象(连接字符串)
                        connection.Open();//打开连接
                    }
                    else if (connection != null)//如果连接不为空
                    {
                        if (connection.State != ConnectionState.Closed)//判断当前连接是否没有关闭
                        {
                            connection.Close();//关闭连接
                            connection.Open();//打开连接
                        }
                    }
                    else if (connection.State == System.Data.ConnectionState.Broken)//判断是否与数据库中断
                    {
                        connection.Close();//关闭连接
                        connection.Open();//打开连接
                    }
                    return connection;//返回连接
                }
            }
            public static int ExecuteCommand(string safeSql)//执行一条sql 语句,返回结果
            {
                SqlCommand cmd = new SqlCommand(safeSql, Connection);//创建command对象,(sql语句,连接对象)
                int result = cmd.ExecuteNonQuery();//执行语句,并用一个int来接收是否执行成功 result>0为成功,否则为失败
                return result;//返回结果
            }        public static int ExecuteCommand(string sql, params SqlParameter[] values)//重载方法。。
            {
                SqlCommand cmd = new SqlCommand(sql, Connection);//创建command对象,(sql语句,连接对象))
                cmd.Parameters.AddRange(values);//添加参数
                return cmd.ExecuteNonQuery();//返回结果
            }        public static int GetScalar(string safeSql)//执行一条sql语句返回第1行第1列的结果
            {
                SqlCommand cmd = new SqlCommand(safeSql, Connection);//创建command对象,(sql语句,连接对象)
                int result = Convert.ToInt32(cmd.ExecuteScalar());
                return result;//返回结果
            }        public static int GetScalar(string sql, params SqlParameter[] values)//执行一条sql语句返回第1行第1列的结果
            {
                SqlCommand cmd = new SqlCommand(sql, Connection);//创建command对象,(sql语句,连接对象)
                cmd.Parameters.AddRange(values);//添加参数
                int result = Convert.ToInt32(cmd.ExecuteScalar());//得到结果
                return result;//返回结果
            }
            public static int GetScalar(string sql, CommandType type, params SqlParameter[] values)//这个基本和上面一样``只是重载传入的参数不同
            {
                SqlCommand cmd = new SqlCommand(sql, Connection);
                cmd.CommandType = type;
                cmd.Parameters.AddRange(values);
                int result = Convert.ToInt32(cmd.ExecuteScalar());
                return result;
            }
            public static SqlDataReader GetReader(string safeSql)//返回一个reader结果集
            {
                SqlCommand cmd = new SqlCommand(safeSql, Connection);//创建command对象,(sql语句,连接对象)
                SqlDataReader reader = cmd.ExecuteReader();//执行sqlDateRead方法
                return reader;//返回结果集
            }        public static SqlDataReader GetReader(string sql, params SqlParameter[] values)//重载,和上面一样,多传了一个参数数组进来
            {
                SqlCommand cmd = new SqlCommand(sql, Connection);
                cmd.Parameters.AddRange(values);
                SqlDataReader reader = cmd.ExecuteReader();
                return reader;
            }
            public static SqlDataReader GetReader(string sql, CommandType type, params SqlParameter[] values)//重载,和上面一样,多传一个CommandType进来...
            {
                SqlCommand cmd = new SqlCommand(sql, Connection);
                cmd.CommandType = type;
                cmd.Parameters.AddRange(values);
                SqlDataReader reader = cmd.ExecuteReader();
                return reader;
            }
            public static DataTable GetDataSet(string safeSql)//返回一个表...
            {
                DataSet ds = new DataSet();
                SqlCommand cmd = new SqlCommand(safeSql, Connection);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                da.Fill(ds);
                return ds.Tables[0];
            }        public static DataTable GetDataSet(string sql, params SqlParameter[] values)//还是返回一个表。重载,带参数的
            {
                DataSet ds = new DataSet();
                SqlCommand cmd = new SqlCommand(sql, Connection);
                cmd.Parameters.AddRange(values);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                da.Fill(ds);
                return ds.Tables[0];
            }    }
    }分不给我那我哭死