三层架构实例 VB.NET版

三层实例

首先发现感慨,对于三成这块,用到都是一些面向对象的特征,尤其是对象的实例化。如果你不是很注意的话,那么,你就会一头雾水,就像我一样,慢慢的雾里看花,最后也是走出来的,不过用的事件是相当的。

对象的实例,vb.net C#是很好的选择。这里我先是用了c#,然后用的vb.net,它们的一些语法是有些不同的,声明,c#直接是在前声明, erVB.Net是在后声明,是类名称或类型在后紧跟。

然后说的一点就是命名空间的引用,出入不是很大,

Using 加核心命名为C#专用 imports +核心命名为vb.net的专用  

当然也少不了添加引用了。

对于期间用到的数组和配置文件,这里不详细说明了。

简单说下配置文件。

两者的配置文件出入很小。

 

1. appSettings配置节

 

[html] view plain copy
  1. <!--数据库连接串-->  
  2.   
  3. <?xmlversionxmlversion="1.0"encoding="utf-8" ?>  
  4.   
  5. <configuration>  
  6.   
  7.     <startup>  
  8.   
  9.         <supportedRuntimeversionsupportedRuntimeversion="v4.0"sku=".NETFramework,Version=v4.5" />  
  10.   
  11.     </startup>  
  12.   
  13.     <appSettings>  
  14.   
  15.        <clear/>  
  16.   
  17.        <add key="connString"value="server=192.168.**.***;database=ThreeLayersSystem;uid=sa;password=123456;"/>  
  18.   
  19.     </appSettings>  
  20.   
  21. </configuration>  


 

注意这里的 KEY 和Value 是 对应出现的, 这个是远程反问数据库的实例 。

 

2 connectionStrings配置节:

[html] view plain copy
  1. <?xmlversionxmlversion="1.0"encoding="utf-8" ?>  
  2.   
  3. <configuration>  
  4.   
  5.     <startup>   
  6.   
  7.         <supportedRuntimeversionsupportedRuntimeversion="v4.0"sku=".NETFramework,Version=v4.5" />  
  8.   
  9.     </startup>  
  10.   
  11. <connectionStrings>  
  12.   
  13.     <clear />  
  14.   
  15.        <add name="ConnectionStrings"connectionString="Data Source=192.168.**.***; DataBase=ThreeLayersSystem; User ID=saPassword=123456"/>  
  16.   
  17.        </connectionStrings>  
  18.   
  19. </configuration>  


 

两者差别几乎很小。

 

下面说下具体的实例如果建造的

 首先建立空白解决方案。  

 

 三层架构实例 VB.NET版_第1张图片

 

之后建立各层

 依次为  添加新项目  

表现层(windos窗体),业务逻辑层(类库),数据访问层(类库),实体层(类库)

 然后添加各层之间的引用

 

 表现层添加业务逻辑层和实体层

 

业务逻辑添加数据访问层和实体层

 

 数据访问层添加实体层。

 

D层还要添加一个为 system.configuration的引用,是对配置文件的引用

 

 

下面为具体实例代码了,为VB.NET的代码示例

 

表现层为UI 代码如下

 

集中配置文件在U层,为开始的appsettings

以下为windos 窗体的代码

导入引用


 

  1. Imports CBLL  
  2.   
  3. Imports Model  
  4.   
  5. Public class form1  
  6.   
  7. PrivateSub cmdOk_Click(sender AsObject, e AsEventArgs) Handles cmdOk.Click  
  8.   
  9.   
  10.         Me.Login(txtUid.Text, txtPwd.Text)  
  11.     EndSub  
  12.   
  13.     ''传递参数,并接受返回的参数  
  14.   
  15.     Private usermanager AsNew BLL.Bll  
  16.   
  17.     PublicSub Login(ByVal userID AsString, ByVal userPwd AsString)  
  18.   
  19.         Dim equal AsStatus = usermanager.userManger(userID, userPwd)  
  20.   
  21.         If (equal = Status.success) Then  
  22.             Dispose(userID)  
  23.   
  24.            Me.Close()  
  25.         ElseIf (equal = Status.fail) Then  
  26.   
  27.             MsgBox("用户名或密码错误")  
  28.   
  29.         EndIf  
  30.   
  31. EndSub  
  32.   
  33. End class  
  34.   
  35.   
  36.    




业务逻辑层代码

 

  1. Imports DAL  
  2. Imports System.Data.SqlClient  
  3. Imports Model  
  4.   
  5. Namespace CBLL  
  6.     Public Class Bll  
  7.   
  8.         '一个方法有几个返回值,几个参数,取决于界面层调用什么东西,也就是需求  
  9.   
  10.         '新建返回为枚举类型的函数  
  11.         '对表现层传递的值进行判断,  
  12.         '验证成功与否,进行枚举判断。  
  13.         Public Function userManger(userID As String, userPwd As StringAs Boolean  
  14.             Dim userDAL As New DAL.Dal  
  15.   
  16.             Dim userinfo As New User  
  17.   
  18.             userinfo = userDAL.Query(userID, userPwd)  
  19.   
  20.             '判断密码和数据库的一样为true,否则为fail   
  21.   
  22.             If (userinfo._userID <> userID Or userinfo._userPwd <> userPwd) Then  
  23.                 Return False  
  24.             Else  
  25.                 Return True  
  26.             End If  
  27.   
  28.         End Function  
  29.     End Class  
  30. End Namespace  



 

 数据访问层

  1. Imports Model  
  2.   
  3. Imports System.Data.SqlClient  
  4.   
  5. Imports System.Configuration  
  6.   
  7. Imports System  
  8.   
  9. Public Class Dal  
  10.   
  11.    
  12.     '定义私有变量  
  13.   
  14.     Private userinfo AsnewUser  
  15.   
  16.     Private rs As SqlClient.SqlDataReader  
  17.   
  18.     Private conn As SqlClient.SqlConnection  
  19.     Private com As SqlClient.SqlCommand  
  20.     Private strConnection AsString  
  21.     
  22.   
  23.     '执行连接字符串,这里用到的是配置文件。  
  24.   
  25.     PublicSubNew()  
  26.   
  27.         conn = New SqlClient.SqlConnection  
  28.   
  29.         strConnection = System.Configuration.ConfigurationManager.AppSettings("connString")  
  30.         conn.ConnectionString = strConnection  
  31.   
  32.         Try  
  33.   
  34.             conn.Open()  
  35.   
  36.             Console.WriteLine("数据测试成功")  
  37.   
  38.         Catch ex AsException  
  39.   
  40.             Throw ex  
  41.   
  42.         Finally  
  43.   
  44.             'conn.Close()  
  45.         EndTry  
  46.   
  47.     EndSub  
  48.   
  49.      PublicFunction Query(ByVal userID AsString, ByVal userPwd AsString) AsUser  
  50.   
  51.    
  52.   
  53.         '查询用户信息并返回用户信息  
  54.   
  55.    
  56.         com = New SqlClient.SqlCommand("select * from T_User where userID='" + userID + "'and userPwd='" + userPwd + "'", conn)  
  57.   
  58.         Try  
  59.             rs = com.ExecuteReader()  
  60.   
  61.             While (rs.Read)  
  62.   
  63.                 userinfo._userID = rs.Item("userID")  
  64.   
  65.                 userinfo._userPwd = rs.Item("userPwd")  
  66.   
  67.                            EndWhile  
  68.             Return userinfo  
  69.         Catch ex AsException  
  70.             Throw ex  
  71.         Finally  
  72.   
  73.             If Not IsNothing(conn) Then  
  74.   
  75.                 'Close()  
  76.             EndIf  
  77.   
  78.         EndTry   
  79.   
  80.     EndFunction   
  81.   
  82. EndClass  


 

 实体 层  一个为数据库对应的字段,User

 

 

    1. Imports System.Data  
    2.   
    3. Imports System.Data.SqlClient  
    4.   
    5. Imports System.Configuration  
    6.   
    7. Imports Model.Status  
    8.   
    9. PublicClassUser  
    10.  
    11. #Region"定义user表中各个属性变量"  
    12.   
    13.     Private userID AsString''用户ID  
    14.     Private userPwd AsString''用户密码  
    15.     Private userName AsString''用户名  
    16.     
    17. #EndRegion  
    18.  
    19.  
    20. #Region"获取数据库的变量"  
    21.   
    22.   
    23.     PublicProperty _userID AsString  
    24.         Get  
    25.             Return userID  
    26.         EndGet  
    27.          Set(value AsString)  
    28.   
    29.              userID = value  
    30.          EndSet  
    31.     EndProperty  
    32.   
    33.     PublicProperty UserState AsStatus  
    34.         Get  
    35.            Return state  
    36.         EndGet  
    37.         Set(value AsStatus)  
    38.              state = value  
    39.          EndSet  
    40.     EndProperty  
    41.    PublicProperty _userPwd AsString  
    42.          Get  
    43.             Return userPwd  
    44.         EndGet  
    45.         Set(value AsString)  
    46.             userPwd = value  
    47.         EndSet  
    48.   
    49.     EndProperty  
    50.  
    51. #EndRegion  
    52.   
    53. EndClass  
    54.   
    55.   

你可能感兴趣的:(VB.NET)