using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
// new 
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace MyQQ
{
    /// <summary> 
    /// 数据处理基类
    /// </summary> 
    public class DataAccess
    {
        #region 静态属性
        protected static SqlConnection conn = new SqlConnection();
        protected static SqlCommand comm = new SqlCommand();
        #endregion        public DataAccess()
        {
            //init(); 
        }        #region 内部函数 静态方法中不会执行DataAccess()构造函数
        /// <summary> 
        /// 打开数据库连接 
        /// </summary> 
        private static void OpenConnection()
        {
            if (conn.State == ConnectionState.Closed)
            {
                ConfigurationManager.RefreshSection("connectionStrings");
                conn.ConnectionString = ConfigurationManager.ConnectionStrings["MyQQConnString"].ConnectionString;
                comm.Connection = conn;
                try
                {
                    conn.Open();
                }
                catch (Exception e)
                {
                    throw new Exception(e.Message);
                }
            }
        }
        /// <summary> 
        /// 关闭当前数据库连接 
        /// </summary> 
        private static void CloseConnection()
        {
            if (conn.State == ConnectionState.Open)
                conn.Close();
            conn.Dispose();
            comm.Dispose();
        }
        #endregion        /// <summary> 
        /// 执行Sql非查询语句 
        /// </summary> 
        /// <param name="sqlstr">传入的Sql语句</param> 
        /// <param name="cmdType">命令执行类型</param>
        /// <param name="cmdParams">参数集合</param>
        public static void ExecuteNonQuery(string sqlstr, CommandType cmdType, params SqlParameter[] cmdParams)
        {
            try
            {
                OpenConnection();                // 添加参数   
                comm.Parameters.Clear();
                for (int i = 0; i < cmdParams.Length; i++)
                {
                    comm.Parameters.Add(cmdParams[i]);
                }                comm.CommandType = cmdType;
                comm.CommandText = sqlstr;
                comm.ExecuteNonQuery();
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
                comm.Parameters.Clear();
                CloseConnection();                
            }
        }        /// <summary> 
        /// 执行Sql非查询语句 
        /// </summary> 
        /// <param name="sqlstr">传入的Sql语句</param>         
        /// <param name="cmdParams">参数集合</param>
        public static void ExecuteNonQuery(string sqlstr, params SqlParameter[] cmdParams)
        {
            ExecuteNonQuery(sqlstr, CommandType.Text, cmdParams);
        }        /// <summary> 
        /// 执行返回第一行第一列的Sql语句 
        /// </summary> 
        /// <param name="sqlstr">传入的Sql语句</param> 
        /// <param name="cmdType">命令执行类型</param>
        /// <param name="cmdParams">参数集合</param>
        public static object ExecuteScalar(string sqlstr, CommandType cmdType, params SqlParameter[] cmdParams)
        {
            object obj = null;
            try
            {
                OpenConnection();                // 添加参数            
                comm.Parameters.Clear();
                for (int i = 0; i < cmdParams.Length; i++)
                {
                    comm.Parameters.Add(cmdParams[i]);
                }                comm.CommandType = cmdType;
                comm.CommandText = sqlstr;
                obj = comm.ExecuteScalar();
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
                comm.Parameters.Clear();
                CloseConnection();
            }            return obj;
        }        /// <summary> 
        /// 执行返回第一行第一列的Sql语句 
        /// </summary> 
        /// <param name="sqlstr">传入的Sql语句</param>         
        /// <param name="cmdParams">参数集合</param>
        public static object ExecuteScalar(string sqlstr, params SqlParameter[] cmdParams)
        {
            return ExecuteScalar(sqlstr, CommandType.Text, cmdParams);
        }        /// <summary> 
        /// 执行Sql查询语句,并返回数据表
        /// </summary> 
        /// <param name="sqlstr">传入的Sql语句</param> 
        /// <param name="cmdType">命令执行类型</param>
        /// <param name="cmdParams">参数集合</param>
        /// <returns>返回数据表对象</returns>        
        public static DataTable GetDataTable(string sqlstr, CommandType cmdType, params SqlParameter[] cmdParams)
        {
            try
            {
                SqlDataAdapter da = new SqlDataAdapter();
                OpenConnection();                // 添加参数 
                comm.Parameters.Clear();
                for (int i = 0; i < cmdParams.Length; i++)
                {
                    comm.Parameters.Add(cmdParams[i]);
                }                comm.CommandType = cmdType;
                comm.CommandText = sqlstr;                DataTable dt = new DataTable();
                da.SelectCommand = comm;
                da.Fill(dt);                return dt;
            }
            catch (Exception e)
            {
                System.Windows.Forms.MessageBox.Show(e.Message);
                return null; 
            }
            finally
            {
                comm.Parameters.Clear();
                CloseConnection();
            }
        }        /// <summary> 
        /// 执行Sql查询语句,并返回数据表
        /// </summary> 
        /// <param name="sqlstr">传入的Sql语句</param>         
        /// <param name="cmdParams">参数集合</param>
        public static DataTable GetDataTable(string sqlstr, params SqlParameter[] cmdParams)
        {
            return GetDataTable(sqlstr, CommandType.Text, cmdParams);
        }        /// <summary> 
        /// 执行Sql查询语句,并返回数据视图
        /// </summary> 
        /// <param name="sqlstr">传入的Sql语句</param> 
        /// <param name="cmdType">命令执行类型</param>
        /// <param name="cmdParams">参数集合</param>
        /// <returns>返回数据视图对象</returns>        
        public static DataView GetDataView(string sqlstr, CommandType cmdType, params SqlParameter[] cmdParams)
        {
            return GetDataTable(sqlstr, cmdType, cmdParams).DefaultView;
        }        /// <summary> 
        /// 执行Sql查询语句,并返回数据视图
        /// </summary> 
        /// <param name="sqlstr">传入的Sql语句</param>         
        /// <param name="cmdParams">参数集合</param>
        /// <returns>返回数据视图对象</returns>        
        public static DataView GetDataView(string sqlstr, params SqlParameter[] cmdParams)
        {
            return GetDataView(sqlstr, CommandType.Text, cmdParams);
        }        /// <summary> 
        /// 执行Sql语句,同时进行事务处理 
        /// </summary> 
        /// <param name="sqlstr">Sql语句列表</param> 
        /// <param name="cmdParams">对应参数列表</param>
        /// <param name="cmdTypes">对应命令类型</param>
        public static void ExecuteSqlWithTransaction(List<string> sqlstrs, List<CommandType> cmdTypes, List<SqlParameter[]> cmdParams)
        {
            SqlTransaction trans = null;
            try
            {
                OpenConnection();
                trans = conn.BeginTransaction();
                comm.Transaction = trans;                int count = sqlstrs.Count;  // 命令数量                if (count != cmdTypes.Count || count != cmdParams.Count)
                {
                    throw new Exception("参数有误");
                }
                else
                {
                    for (int i = 0; i < count; i++)
                    {
                        comm.CommandType = cmdTypes[i];
                        comm.CommandText = sqlstrs[i];                        // 添加参数                
                        comm.Parameters.Clear();
                        for (int j = 0; j < cmdParams[i].Length; j++)
                        {
                            comm.Parameters.Add(cmdParams[i][j]);
                        }                        comm.ExecuteNonQuery();
                    }
                    trans.Commit();
                }
            }
            catch(Exception ex)
            {
                trans.Rollback();
                throw new Exception(ex.Message);
            }
            finally
            {
                CloseConnection();
            }
        }        /// <summary> 
        /// 执行Sql语句,同时进行事务处理 
        /// </summary> 
        /// <param name="sqlstr">Sql语句列表</param> 
        /// <param name="cmdParams">对应参数列表</param>
        /// <param name="cmdTypes">对应命令类型</param>
        public static void ExecuteSqlWithTransaction(List<string> sqlstrs, List<SqlParameter[]> cmdParams)
        {
            List<CommandType> cmdTypes = new List<CommandType>();
            for (int i = 0; i < sqlstrs.Count; i++)
            {
                cmdTypes.Add(CommandType.Text);
            }            ExecuteSqlWithTransaction(sqlstrs, cmdTypes, cmdParams);
        }
    }
}

解决方案 »

  1.   

    ConfigurationManager.RefreshSection("connectionStrings");
      conn.ConnectionString = ConfigurationManager.ConnectionStrings["MyQQConnString"].ConnectionString;ConfigurationManager是不是你写的类啊  缺少引用吧
      

  2.   

    要添加对System.Configuration程序集的引用,在引用或者Bin文件夹上按右键选择添加引用。
      

  3.   

    添加 System.Configuration 引用.net2.0版本开始有这个东西的
      

  4.   



    这是.net本身的dll
      

  5.   

    添加 System.Configuration 引用.net2.0版本开始有这个东西的
      

  6.   

    你们添加System.Configuration引用,在引用里面添加上就ok了。