连接SQL Server数据库笔记

发布于 2013-05-26  836 次阅读


最近在学习用C#开发程序,做Clover项目的时候用到了数据库连接,结合各方面资料总算做出来了一点儿,记下笔记:
基本数据库连接:

    public class sql //sql查询类
    {
        //数据库连接字符读取,这部分数据放在web.config中,保证一定安全性
        public static string connectionString = ConfigurationManager.AppSettings.Get("connectionString");

        public SqlConnection sqlConnect()//数据库连接函数
        {
            SqlConnection sqlConnect = new SqlConnection();
            sqlConnect.ConnectionString = connectionString;
            sqlConnect.Open();
            return sqlConnect;
        }

将数据库中读取的内容转换为动态数组

        public List<UserInfomation> getUserInfomation(string strSql)//将数据库内容读取到动态数组,暂未使用此功能
        {
            List<UserInfomation> UserInfo = new List<UserInfomation>();
            SqlConnection sqlCon = sqlConnect();
            SqlCommand cmd = new SqlCommand(strSql, sqlCon);
            SqlDataReader dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                UserInfomation userinfo = new UserInfomation();
                userinfo.id = dr["id"].ToString();
                userinfo.ename = dr["ename"].ToString();
                userinfo.eteam = dr["eteam"].ToString();
                userinfo.edept = dr["edept"].ToString();
                UserInfo.Add(userinfo);
            }
            dr.Close();
            sqlCon.Close();
            return UserInfo;
        }

将数据库中读出的内容转换为DataTable便于数据源绑定等操作:

        public DataTable getUserInfoDataTable(string strSql)//将sql读取出的数据转换为DataTable类型
        {
            SqlConnection sqlCon = sqlConnect();
            SqlCommand cmd = new SqlCommand(strSql, sqlCon);
            SqlDataReader dr = cmd.ExecuteReader();
            DataTable dataTable = new DataTable();//建一个新的实例

            //构建DataTable基本数据类型:列信息
            for (int i = 0; i < dr.FieldCount; i++)
            {
                DataColumn mydc = new DataColumn();//关键的一步,构造一个DataColumn类型用于存储列信息
                mydc.DataType = dr.GetFieldType(i);//列的数据类型拷贝到构造的DataColumn类中
                mydc.ColumnName = dr.GetName(i);//列名拷贝到构造的DataColumn类中

                dataTable.Columns.Add(mydc);//关键的第二步,将构造好的DataColumn拷贝到dataTable中
            }

            //依次读取数据库中每一行
            while (dr.Read())
            {
                DataRow mydr = dataTable.NewRow();//关键的第三步
                for (int i = 0; i < dr.FieldCount; i++)
                {
                    if (dr[i].ToString() == null || dr[i].ToString() == "")
                    {
                        mydr[i] = "";
                    }
                    else
                    {
                        mydr[i] = dr[i].ToString();
                    }
                }

                dataTable.Rows.Add(mydr);//关键的第四步
                mydr = null;
            }

            dr.Close();
            sqlCon.Close();
            return (dataTable);//别忘了要返回datatable,否则出错
        }
届ける言葉を今は育ててる
最后更新于 2013-05-26