数据库连接

View Code
using System; 
using System.Collections; 
using System.Collections.Generic; 
using System.Text; 
using System.Data; 
using System.Data.SqlClient;

namespace 学生信息管理系统 
{ 
    class DataBase 
    { 
        public SqlConnection connection; 
        /// <summary> 
        /// 打开数据库 
        /// </summary> 
        private void open() 
        { 
            string connstring = "Data Source=LNZI86-pc;Initial Catalog=信息管理;Persist Security Info=True;User ID=aab;Password=123"; 
            connection = new SqlConnection(connstring); 
            connection.Open();

            //SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(); 
            //builder.DataSource = "."; 
            //builder.InitialCatalog = "信息管理"; 
            //builder.IntegratedSecurity = false;//ture为windows身份验证 
            //builder.UserID = "aab"; 
            //builder.Password = "123"; 
            //string connStr = builder.ToString(); 
           // return connStr; 
        } 
        /// <summary> 
        /// 关闭数据库 
        /// </summary> 
        private void close() 
        { 
            connection.Dispose(); 
            connection.Close(); 
            connection = null; 
        }

        /// <summary> 
        /// 输入SQL命令,得到DataReader对象 
        /// </summary> 
        public SqlDataReader GetDataReader(string sqlstring) 
        { 
            open(); 
            SqlCommand mycom = new SqlCommand(sqlstring, connection); 
            SqlDataReader Dr = mycom.ExecuteReader(); 
            return Dr; 
        } 
        /// <summary> 
        /// 输入SQL命令,得到Dataset 
        /// </summary> 
        public DataSet GetDataSet(string sqlstring) 
        { 
            open(); 
            SqlCommand mycom = new SqlCommand(sqlstring, connection); 
            SqlDataAdapter adapter = new SqlDataAdapter(); 
            adapter.SelectCommand = mycom;

            DataSet dataset = new DataSet(); 
            adapter.Fill(dataset); 
            close(); 
            return dataset; 
        } 
        /// <summary> 
        /// 执行非查询命令SQL命令 
        /// </summary> 
        public int ExecuteSQL(string sqlstring) 
        { 
            int count = -1; 
            open(); 
            try 
            { 
                SqlCommand cmd = new SqlCommand(sqlstring, connection); 
                count = cmd.ExecuteNonQuery(); 
            } 
            catch 
            { 
                count = -1; 
            } 
            finally 
            { 
                close(); 
            } 
            return count; 
        } 
        /// <summary> 
        /// 输入SQL命令,检查数据表中是否有该数据信息 
        /// </summary> 
        public int GetdataRow(string sqlstring) 
        { 
            int CountRow = 0; 
            open(); 
            SqlCommand mycom = new SqlCommand(sqlstring, connection); 
            SqlDataAdapter da = new SqlDataAdapter(); 
            da.SelectCommand = mycom; 
            DataSet ds = new DataSet(); 
            da.Fill(ds);

            ds.CaseSensitive = false; 
            CountRow = ds.Tables[0].Rows.Count;//取行集合中的元素的总数 
            close(); 
            return CountRow; 
        } 
        /// <summary> 
        /// 输入SQL命令,得到DataTable对象 
        /// </summary> 
        public DataTable GetDataTable(string sqlstring) 
        { 
            DataSet ds = GetDataSet(sqlstring); 
            DataTable dt = new DataTable(); 
            dt = ds.Tables[0]; 
            return dt;

        }

        /// <summary> 
        /// 获取单个值 
        /// </summary> 
        public object GetScalar(string sqlstring) 
        { 
            open(); 
            SqlCommand mycom = new SqlCommand(sqlstring, connection); 
            object result = mycom.ExecuteScalar(); 
            close(); 
            return result; 
        } 
        /// <summary> 
        /// 对整体数据集实施批量更新;一般用于列表这样的对象 
        /// </summary> 
        /// <param name="ds">DataSet</param> 
        /// <param name="sql">sql语句</param> 
        /// <param name="tableName">表名</param> 
        /// <returns></returns> 
        public bool doUpdate(DataSet ds, String sql, String tableName) 
        { 
            bool flag = false; 
            open(); 
            //强制资源清理;清理非托管资源,不受GC控制的资源。Using结束后会隐式的调用Disposable方法。 
            using (SqlDataAdapter da = new SqlDataAdapter(sql, connection)) 
            { 
                //数据库表一定要有主键列 否则此处通不过 
                SqlCommandBuilder builder = new SqlCommandBuilder(da); 
                try 
                { 
                    lock (this) 
                    { 
                        da.Update(ds, tableName); 
                        flag = true; 
                    } 
                } 
                catch (SqlException e) 
                { 
                    throw new Exception(e.Message); 
                } 
            } 
            close(); 
            return flag; 
        } 
        /// <summary> 
        /// 查询某张表的某列属性的数据,并形成列表 
        /// </summary> 
        /// <param name="sqlstring">查询SQL字串</param> 
        /// <param name="m">第m列的属性,整数类型</param> 
        /// <returns></returns> 
        public ArrayList GetListArray(string sqlstring, int m) 
        { 
            ArrayList array = new ArrayList();//创建ArrayList对象 
            SqlDataReader dr = GetDataReader(sqlstring); 
            while (dr.Read())//遍历所有结果集 
            { 
                array.Add(dr.GetValue(m));//取到结果集索引的第0列的值并添加到ArrayList对象中 
            } 
            return array;//返回ArrayList对象 
        }

    } 
} 

 

posted @ 2012-12-31 09:42  小超静心学  阅读(94)  评论(0编辑  收藏  举报