以下是同学给我的一个数据库连接类,但看不太懂,请大神指点,越详细越好,多谢啦~~using System;
using System.Collections.Generic;
using System.Text;using System.IO;
using System.Data;
using System.Data.SqlClient;
using System.Collections;
using System.Xml;
using System.Configuration;    /// <summary>
    /// 数据库访问类
    /// </summary>
    public class TDB
    {
        private static TDB _DB = null;     //PS.为什么这样声明,声明的是什么?
        /// <summary>
        /// 静态对象
        /// </summary>
        public static TDB DB
        {
            get {
                if (_DB == null)
                {
                    _DB = new TDB();
                }
                return _DB;
            }
        }
        //以下是关于数据库连接,第一个为数据库地址,可以用ip地址;第二个是数据库名称;第三个是以什么形式进行访问,以windows身份登陆。\这个C#无法识别,再加一个\即可
        private string _ConnectionString = "Data Source=MLJ-PC;Initial Catalog=db_hump;Integrated Security=True;";
        /// <summary>
        /// 连接串
        /// </summary>
        public string ConnectionString
        {
            get { return  _ConnectionString; }
            set { _ConnectionString = value; }
        }
        /// <summary>
        /// 查询表
        /// </summary>
        /// <param name="ASQL">SQL</param>
        /// <param name="APs">参数表</param>
        /// <param name="AVs">参数值表</param>
        /// <returns>返回表</returns>
        public DataTable GetTable(string ASQL, string[] APs, object[] AVs)
        {
            DataTable Adt = new DataTable();
            try {
                SqlDataAdapter Adp = new SqlDataAdapter(ASQL, ConnectionString);
                if (APs != null)
                {
                    for (int i = 0; i < APs.Length; i++)
                    { 
                        Adp.SelectCommand.Parameters.Add( new SqlParameter(APs[i], AVs[i]));
                    }
                }
                Adp.Fill( Adt);
                Adp.Dispose();
                Adp = null;
            }
            catch (Exception er) { ;}
            return Adt;
        }
        /// <summary>
        /// 查询表
        /// </summary>
        /// <param name="ASQL">SQL</param> 
        /// <returns>返回表</returns>
        public DataTable GetTable(string ASQL)
        {
            return GetTable(ASQL, null, null);
        }
        /// <summary>
        /// 执行操作
        /// </summary>
        /// <param name="ASQL">SQL</param>
        /// <param name="APs">参数表</param>
        /// <param name="AVs">参数值表</param>
        /// <returns>是否成功</returns>
        public Boolean DoExecute(string ASQL, string[] APs, object[] AVs)
        {
            Boolean ARes = false;
            SqlConnection AConn = new SqlConnection(ConnectionString);
            SqlCommand ACmd = new SqlCommand(ASQL, AConn);
            try {
                if (APs != null)
                {
                    for (int i = 0; i < APs.Length; i++)
                    {
                        ACmd.Parameters.Add(new SqlParameter(APs[i], AVs[i]));
                    }
                }
                AConn.Open();
                ACmd.ExecuteNonQuery();
                ARes = true;
            }
            catch (Exception er) { ;}
            return ARes;
        }
        /// <summary>
        /// 执行操作
        /// </summary>
        /// <param name="ASQL">SQL</param> 
        /// <returns>是否成功</returns>
        public Boolean DoExecute(string ASQL)//插入更新
        {
            return DoExecute(ASQL, null, null);
        }
        /// <summary>
        /// 释放表
        /// </summary>
        /// <param name="Adt">表</param>
        public void DoFreeTable(ref DataTable Adt)
        {
            if (Adt != null)
            {
                try
                {
                    Adt.Clear();
                    Adt.Dispose();
                    Adt = null;
                }
                catch (Exception er) { ;}
            }
        }
        /// <summary>
        /// 返回新的ID
        /// </summary>
        /// <param name="ATable">表名</param>
        /// <returns>新的ID</returns>
        public int GetMaxID(string ATable)
        {
            int ARes = 0;
            try {
                string SQL = "Select Max(F_ID) as F_NewID From " + ATable;
                DataTable Adt = GetTable(SQL);
                if (Adt.Rows.Count > 0)
                {
                    ARes = int.Parse(Adt.Rows[0]["F_NewID"].ToString());
                }
                DoFreeTable(ref Adt);
            }
            catch (Exception er) { ;}
            return ARes;
        }
        /// <summary>
        /// 新增数据
        /// </summary>
        /// <param name="ATable">表名</param>
        /// <param name="AFs">字段名数组</param>
        /// <param name="AVs">字段值数组</param>
        /// <returns>是否成功</returns>
        public Boolean DoInsert(string ATable, string[] AFs, object[] AVs)
        {
            Boolean ARes = false;
            try {
                string SQL = "Insert into " + ATable + " (";
                for (int i = 0; i < AFs.Length; i++)
                {
                    SQL += AFs[i] + ",";
                }
                SQL = SQL.Substring(0, SQL.Length - 1);
                SQL += " ) Values ( ";
                for (int i = 0; i < AFs.Length; i++)
                {
                    SQL += "@AP" + AFs[i]+",";
                }
                SQL = SQL.Substring(0, SQL.Length - 1);
                SQL += ")";
                string[] APs = new string[AFs.Length];
                for (int i = 0; i < AFs.Length; i++)
                {
                    APs[i] = "@AP" + AFs[i];
                }
                ARes = DoExecute(SQL, APs, AVs);
            }
            catch (Exception er) { ;}
            return ARes;
        }
        /// <summary>
        /// 插入数据返回新的ID
        /// </summary>
        /// <param name="ATable">表名</param>
        /// <param name="AFs">字段名数组</param>
        /// <param name="AVs">字段值数组</param>
        /// <returns>新的ID</returns>
        public int DoInsertReturnID(string ATable, string[] AFs, object[] AVs)
        {
            int AID = 0;
            try {
                Boolean AFlag = DoInsert(ATable, AFs, AVs);
                if (AFlag)
                {
                    AID = GetMaxID(ATable);
                }
            }
            catch (Exception er) { ;}
            return AID;
        }        /// <summary>
        /// 更新数据
        /// </summary>
        /// <param name="ATable">表名</param>
        /// <param name="AFs">字段名数组</param>
        /// <param name="AFVs">字段值数组</param>
        /// <param name="AConds">条件字段名数组</param>
        /// <param name="ACondValues">条件字段值数组</param>
        /// <returns>是否成功</returns>
        public Boolean DoUpdate(string ATable, string[] AFs, object[] AFVs, string[] AConds, object[] ACondValues)
        {
            Boolean ARes = false;
            try
            {
                string SQL = "Update " + ATable + " Set ";                for (int i = 0; i < AFs.Length; i++)
                {
                    SQL += AFs[i] + "=@AP"+AFs[i]+",";
                }
                SQL = SQL.Substring(0, SQL.Length - 1);
                SQL += " Where  (1>0) ";
                for (int i = 0; i < AConds.Length; i++)
                {
                    SQL += " And "+ AConds[i] + "=@APC" + AConds[i] ;
                }
                string[] APs = new string[AFs.Length + AConds.Length];
                object[] AVs = new object[APs.Length];
                int n = 0;
                for (int i = 0; i < AFs.Length; i++)
                {
                    APs[n] = "@AP" + AFs[i];
                    AVs[n] = AFVs[i];
                    n++;
                }
                for (int i = 0; i < AConds.Length; i++)
                {
                    APs[n] = "@APC" + AConds[i];
                    AVs[n] = ACondValues[i];
                    n++;
                }
                ARes = DoExecute(SQL, APs, AVs);
            }
            catch (Exception er) { ;}
            return ARes;
        }
    }
数据库连接

解决方案 »

  1.   

    好长好长怎么说呢。
    看教材吧首先创建连接对象: SqlConnection AConn = new SqlConnection(ConnectionString);
    然后创建声明方法: SqlCommand ACmd = new SqlCommand(ASQL, AConn);
    然后执行:      AConn.Open();//打开
                    ACmd.ExecuteNonQuery();//执行sql语句
      

  2.   


    public class TDB  //这个类是单实例,你可以查一下设计模式里面的单实例。这样做能保证只有一个实例。
      

  3.   

    与数据库的操作无非先打开数据库连接,然后执行Sql语句,然后把执行的结果返回到程序中,需要理解还是好好先学会查看MSDN吧
      

  4.   

    首先创建连接对象: SqlConnection AConn = new SqlConnection(ConnectionString);
    然后创建声明方法: SqlCommand ACmd = new SqlCommand(ASQL, AConn);
    然后执行:      AConn.Open();//打开
                    ACmd.ExecuteNonQuery();//执行sql语句
    这个是数据库连接:private string _ConnectionString = "Data Source=MLJ-PC;Initial Catalog=db_hump;Integrated Security=True;";
    还有就是希望说一下这个主要是干什么的
      

  5.   

    看不懂查MSDN,ADO.NET一步步调试