實體類、數據訪問類 是由封裝演變而來,使對數據的訪問更便捷,使用時只需要調用即可,無需再次編寫代碼
實體類是按照數據庫表的結構封裝起來的一個類
首先,新建文件夾 App_Code ,用於存放數據庫類等類文件,新建類,例如: Users(與數據庫訪問的表同名)和 UsersData
在類UsersData里寫數據庫訪問方法

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.SqlClient; namespace lxc_屬性擴展.APP_Code { public class UsersData { SqlConnection conn = null; SqlCommand cmd = null; public UsersData()//主函數實例化時自動實例化下列 數據庫連接類 和 數據庫操作類 語句 { conn = new SqlConnection("server=.;database=Data0928;user=sa;pwd=asdf"); cmd = conn.CreateCommand(); } /// <summary> /// 將數據加入到數據庫中,如果返回true說明添加成功 /// </summary> /// <param name="u">要加入到數據庫表中的Users對象</param> /// <returns></returns> public bool Insert(Users u) { bool ok = false; cmd.CommandText = "insert into Users values(@a,@b,@c,@d,@e,@f,@g)"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@a", u.Username); cmd.Parameters.AddWithValue("@b", u.Password); cmd.Parameters.AddWithValue("@c", u.Nickname); cmd.Parameters.AddWithValue("@d", u.Sex); cmd.Parameters.AddWithValue("@e", u.Birthday); cmd.Parameters.AddWithValue("@f", u.Nation); cmd.Parameters.AddWithValue("@g", u.Class); int count = 0; conn.Open(); count = cmd.ExecuteNonQuery(); conn.Close(); if (count > 0) ok = true; return ok; } /// <summary> /// 將數據從數據庫中刪除,如果返回true說明刪除成功 /// </summary> /// <param name="username"></param> /// <returns></returns> public bool Delete(string username) { bool ok = false; cmd.CommandText = "delete from Users where username=@a"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@a", username); int count = 0; conn.Open(); count = cmd.ExecuteNonQuery(); conn.Close(); if (count > 0) ok = true; return ok; } /// <summary> /// 對數據庫中的數據進行修改,如果返回true說明修改成功 /// </summary> /// <param name="username"></param> /// <param name="u"></param> /// <returns></returns> public bool Update(string username, Users u) { bool ok = false; cmd.CommandText = "update Users set username=@a,password=@b,nickname=@c,sex=@d,birthday=@e,nation=@f,class=@g where username=@un"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@a", u.Username); cmd.Parameters.AddWithValue("@b", u.Password); cmd.Parameters.AddWithValue("@c", u.Nickname); cmd.Parameters.AddWithValue("@d", u.Sex); cmd.Parameters.AddWithValue("@e", u.Birthday); cmd.Parameters.AddWithValue("@f", u.Nation); cmd.Parameters.AddWithValue("@g", u.Class); cmd.Parameters.AddWithValue("@un", username); int i = 0; conn.Open(); i = cmd.ExecuteNonQuery(); conn.Close(); if (i > 0) ok = true; return ok; } /// <summary> /// 查詢數據庫中所有的數據,返回List<>集合 /// </summary> /// <returns></returns> public List<Users> Select() { List<Users> list = new List<Users>(); cmd.CommandText = "select *from Users"; conn.Open(); SqlDataReader dr = cmd.ExecuteReader(); if (dr.HasRows) { while (dr.Read()) { Users u = new Users(); u.Ids = (int)dr["ids"]; u.Username = dr["username"].ToString(); u.Password = dr["password"].ToString(); u.Nickname = dr["nickname"].ToString(); u.Sex = (Boolean)dr["sex"]; u.Birthday = (DateTime)dr["birthday"]; u.Nation = dr["nation"].ToString(); u.Class = dr["class"].ToString(); list.Add(u); } } conn.Close(); return list; } /// <summary> /// 查詢數據庫中某條數據,返回List<>集合 /// </summary> /// <param name="username">要查詢的數據的用戶名</param> /// <returns></returns> public List<Users> Select(string username) { List<Users> list = new List<Users>(); cmd.CommandText = "select *from Users where username=@a"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@a", username); conn.Open(); SqlDataReader dr = cmd.ExecuteReader(); if (dr.HasRows) { dr.Read(); Users u = new Users(); u.Ids = (int)dr["ids"]; u.Username = dr["username"].ToString(); u.Password = dr["password"].ToString(); u.Nickname = dr["nickname"].ToString(); u.Sex = (Boolean)dr["sex"]; u.Birthday = (DateTime)dr["birthday"]; u.Nation = dr["nation"].ToString(); u.Class = dr["class"].ToString(); list.Add(u); } conn.Close(); return list; } } }
在主函數中調用方法即可