最近在学习用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,否则出错 }
Comments NOTHING