使用C#語言結合三層框架鏈接數據庫實現簡單數據登陸功能

        不少人在使用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>
       用戶名:&nbsp <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
       用戶密碼: <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br /><br /><br />
       &nbsp&nbsp&nbsp <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),成功了之後就這樣了

相關文章
相關標籤/搜索