不少人在使用Microsoft Visual Studio的時候不知道怎麼鏈接數據庫和使用三層框架,今天咱們來一塊兒學習怎麼利用Microsoft Visual Studio 創建一個簡單的登錄頁面。html
工具:前端
Microsoft Visual Studio 2010web
SQL Server Management Studio數據庫
步驟:後端
1.首先新建一個空白的解決方案架構
2.右鍵點擊解決方案創建咱們須要的三層。框架
在創建三層的時候有一點要注意,由於三層架構分爲:表現層(UI(User Interface))、業務邏輯層(BLL(Business Logic Layer))、數據訪問層(DAL(Data Access Layer))再加上實體類庫(Model)因此咱們Model,DAL和BLL層都創建爲類庫(如圖一)而UI層創建爲web項目(如圖二)工具
圖一學習
圖二spa
創建完成之後就是下表啦!已經成功三分之一啦!爲本身鼓掌吧!
三層要怎麼聯繫起來?接下來就是引用啦! 右鍵引用,添加引用
引用關係:
BLL須要引用DAL和Model;
DAL須要引用Model;
Model是實體,不須要引用其餘層;
接下來就是鏈接數據庫和執行代碼操做啦~
在數據庫裏面創建一個表,取名爲Test裏面有兩列並加入兩個數據,如圖:
最後一步,上代碼。
Model層: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Model { public class Class1 { public string username {set;get;} public string userpwd { set; get; } } } Dal層: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Data.SqlClient; namespace Dal { public class Class1 { public List<Model.Class1> MyList(string where) { DataSet ds = DB.ToGetData("select *from Test " + where); if (ds != null && ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0) { Model.Class1 MyClass1 = null; List<Model.Class1> MyList = new List<Model.Class1>(); foreach (DataRow item in ds.Tables[0].Rows) { MyClass1 = new Model.Class1(); MyClass1.username = item["username"].ToString(); MyClass1.userpwd = item["userpwd"].ToString(); MyList.Add(MyClass1); } return MyList; } else { return null; } } } public class DB { static string ConnStr = "Data Source=.;Initial Catalog=調用的數據庫名;Persist Security Info=True;User ID=數據庫用戶名;Password=數據庫密碼"; public static DataSet ToGetData(string Sql) { using (SqlConnection Conn = new SqlConnection(ConnStr)) { using (SqlDataAdapter da = new SqlDataAdapter(Sql, Conn)) { DataSet ds = new DataSet(); Conn.Open(); da.Fill(ds); da.Dispose(); return ds; } } } } } Bll層: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Bll { public class Class1 { Dal.Class1 NewDal = new Dal.Class1(); public List<Model.Class1> Login(string username, string userpwd) { if (!string.IsNullOrEmpty(username) && !string.IsNullOrEmpty(userpwd)) { return NewDal.MyList(" where username='"+username+"' and userpwd='"+userpwd+"'" ); } else { return null; } } } } UI層:(Login窗體) 1前端: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="UI.Login" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> 用戶名:  <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br /> 用戶密碼: <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br /><br /><br />     <asp:Button ID="Button1" runat="server" Text="登Ì?陸?" onclick="Button1_Click" /> </div> </form> </body> </html> 2.後端: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace UI { public partial class Login : System.Web.UI.Page { Bll.Class1 NewBll = new Bll.Class1(); protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { string username = TextBox1.Text.Trim(); string userpwd = TextBox2.Text.Trim(); if (!string.IsNullOrEmpty(username) && !string.IsNullOrEmpty(userpwd)) { List<Model.Class1> Myuserlist = NewBll.Login(username, userpwd); if (Myuserlist != null) { Page.ClientScript.RegisterStartupScript(GetType(), "js", "<script>alert('登陸成功!');</script>"); } else { Page.ClientScript.RegisterStartupScript(GetType(), "js", "<script>alert('用戶密或密碼不存在!');</script>"); } } else { Page.ClientScript.RegisterStartupScript(GetType(), "js", "<script>alert('請輸入全部信息!');</script>"); } } } }
在UI層點擊運行(F5),成功了之後就這樣了