關於面對物件過程中的三大架構以及資料訪問層(實體類、資料操作類)
阿新 • • 發佈:2018-11-04
關於面對物件過程中的三大架構以及資料訪問層(實體類、資料操作類)
面向物件開發專案三層架構:
介面層、業務邏輯層、資料訪問層
資料訪問層,分為實體類和資料訪問類
在專案的下面新增一個App_Code資料夾把所有的類放在App_Code這個資料夾下邊。
一、實體類
資料庫中的表對映為一個類,類名與表名一致。表中的每一列,都為該類下的成員變數和屬性也就是最簡單的封裝
把資料庫中的表名變為類的類名。
把資料庫中的每一個列,變為實體類中的成員變數和屬性(也就是對每個資料庫中的欄位封裝)
列名與屬性名一致。成員變數名:在列名前邊加上下劃線。因為在外部訪問只能訪問到屬性,為了看起來一致。
複製程式碼
複製程式碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1.App_Code
{
public class Users
{
private int _Ids;
public int Ids
{
get { return _Ids; }
set { _Ids = value; }
}
private string _UserName;
public string UserName
{
get { return _UserName; }
set { _UserName = value; }
}
private string _PassWord;
public string PassWord
{
get { return _PassWord; }
set { _PassWord = value; }
}
private string _NickName;
public string NickName
{
get { return _NickName; }
set { _NickName = value; }
}
private bool _Sex;
public bool Sex
{
get { return _Sex; }
set { _Sex = value; }
}
private DateTime _Birthday;
public DateTime Birthday
{
get { return _Birthday; }
set { _Birthday = value; }
}
private string _Nation;
public string Nation
{
get { return _Nation; }
set { _Nation = value; }
}
}
}
複製程式碼
複製程式碼
二、資料訪問類
將某個表的資料庫操作寫成一個方法,放到該類中,共外部呼叫。
複製程式碼
複製程式碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
namespace ConsoleApplication2.App_Code
{
public class UsersData
{
SqlConnection conn = null;
SqlCommand cmd = null;
public UsersData()
{
conn = new SqlConnection("server=.;database=Data0216;user=sa;pwd=123");
cmd = conn.CreateCommand();
}
public List<Users> SelectAll()
{
List<Users> list = new List<Users>();
cmd.CommandText = "select *from Users";
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Users u = new Users();
u.Ids = Convert.ToInt32(dr["ids"]);
u.UserName = dr["UserName"].ToString();
u.PassWord = dr["PassWord"].ToString();
u.NickName = dr["NickName"].ToString();
u.Sex = Convert.ToBoolean(dr["Sex"]);
u.Birthday = Convert.ToDateTime(dr["Birthday"]);
u.Nation = dr["Nation"].ToString();
list.Add(u);
}
conn.Close();
return list;
}
public void Insert(Users u)
{
cmd.CommandText = "insert into Users values(@username,@password,@nickname,@sex,@birthday,@nation)";
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@username", u.UserName);
cmd.Parameters.AddWithValue("@password", u.PassWord);
cmd.Parameters.AddWithValue("@nickname", u.NickName);
cmd.Parameters.AddWithValue("@sex", u.Sex);
cmd.Parameters.AddWithValue("@birthday", u.Birthday);
cmd.Parameters.AddWithValue("@nation", u.Nation);
conn.Open();
int a= cmd.ExecuteNonQuery();
if (a > 0) Console.WriteLine("新增資料成功");
else Console.WriteLine("新增資料失敗");
conn.Close();
}
}
}
面向物件開發專案三層架構:
介面層、業務邏輯層、資料訪問層
資料訪問層,分為實體類和資料訪問類
在專案的下面新增一個App_Code資料夾把所有的類放在App_Code這個資料夾下邊。
一、實體類
資料庫中的表對映為一個類,類名與表名一致。表中的每一列,都為該類下的成員變數和屬性也就是最簡單的封裝
把資料庫中的表名變為類的類名。
把資料庫中的每一個列,變為實體類中的成員變數和屬性(也就是對每個資料庫中的欄位封裝)
列名與屬性名一致。成員變數名:在列名前邊加上下劃線。因為在外部訪問只能訪問到屬性,為了看起來一致。
複製程式碼
複製程式碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1.App_Code
{
public class Users
{
private int _Ids;
public int Ids
{
get { return _Ids; }
set { _Ids = value; }
}
private string _UserName;
public string UserName
{
get { return _UserName; }
set { _UserName = value; }
}
private string _PassWord;
public string PassWord
{
get { return _PassWord; }
set { _PassWord = value; }
}
private string _NickName;
public string NickName
{
get { return _NickName; }
set { _NickName = value; }
}
private bool _Sex;
public bool Sex
{
get { return _Sex; }
set { _Sex = value; }
}
private DateTime _Birthday;
public DateTime Birthday
{
get { return _Birthday; }
set { _Birthday = value; }
}
private string _Nation;
public string Nation
{
get { return _Nation; }
set { _Nation = value; }
}
}
}
複製程式碼
複製程式碼
二、資料訪問類
將某個表的資料庫操作寫成一個方法,放到該類中,共外部呼叫。
複製程式碼
複製程式碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
namespace ConsoleApplication2.App_Code
{
public class UsersData
{
SqlConnection conn = null;
SqlCommand cmd = null;
public UsersData()
{
conn = new SqlConnection("server=.;database=Data0216;user=sa;pwd=123");
cmd = conn.CreateCommand();
}
public List<Users> SelectAll()
{
List<Users> list = new List<Users>();
cmd.CommandText = "select *from Users";
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Users u = new Users();
u.Ids = Convert.ToInt32(dr["ids"]);
u.UserName = dr["UserName"].ToString();
u.PassWord = dr["PassWord"].ToString();
u.NickName = dr["NickName"].ToString();
u.Sex = Convert.ToBoolean(dr["Sex"]);
u.Birthday = Convert.ToDateTime(dr["Birthday"]);
u.Nation = dr["Nation"].ToString();
list.Add(u);
}
conn.Close();
return list;
}
public void Insert(Users u)
{
cmd.CommandText = "insert into Users values(@username,@password,@nickname,@sex,@birthday,@nation)";
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@username", u.UserName);
cmd.Parameters.AddWithValue("@password", u.PassWord);
cmd.Parameters.AddWithValue("@nickname", u.NickName);
cmd.Parameters.AddWithValue("@sex", u.Sex);
cmd.Parameters.AddWithValue("@birthday", u.Birthday);
cmd.Parameters.AddWithValue("@nation", u.Nation);
conn.Open();
int a= cmd.ExecuteNonQuery();
if (a > 0) Console.WriteLine("新增資料成功");
else Console.WriteLine("新增資料失敗");
conn.Close();
}
}
}