首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

小弟我这样的代码算不算三层架构

2012-03-23 
我这样的代码算不算三层架构?1.首先建立命名空间下的一个类SqlDB(或是OledbDb),包含几个主要方法(函数):Ex

我这样的代码算不算三层架构?
1.首先建立命名空间下的一个类SqlDB(或是OledbDb),包含几个主要方法(函数):Execute、SelectDataSet、SelectDataTable

VB.NET code
        Public Overloads Sub Execute(Optional ByVal ConI As Integer = 0) ''执行Sql查询            ThisError = False            Dim MyConnection As SqlConnection = New SqlConnection(ConStr(ConI))            Try                MyConnection.Open()            Catch ex As Exception                isError = True                ThisError = True                Dim myDbError As DbError = New DbError()                myDbError.sbrErrorText = New StringBuilder()                myDbError.sbrErrorText.Append("[错误原因]").Append(Chr(10)).Append("打开[数据库连接]时出错。").Append(Chr(10)).Append(Chr(10)).Append("[错误提示]").Append(Chr(10)).Append("当前所使用的数据连接字符序号(ConI)为:").Append(ConI).Append(Chr(10)).Append("当前所使用的数据连接字符串(ConStr)为:").Append(ConStr(ConI))                Call myDbError.AddErrorLog(myDbError.sbrErrorText)                ErrorNotice = myDbError.sbrErrorText.Replace(Chr(10), "<br>").ToString                Exit Sub            End Try            Dim MyCommand As SqlCommand = New SqlCommand(strSQL, MyConnection)            Try                MyCommand.ExecuteNonQuery()            Catch ex As Exception                isError = True                ThisError = True                Dim myDbError As DbError = New DbError()                myDbError.sbrErrorText = New StringBuilder()                myDbError.sbrErrorText.Append("[错误原因]").Append(Chr(10)).Append("Sql语句执行时出错。").Append(Chr(10)).Append(Chr(10)).Append("[连接序号(ConI)]").Append(ConI).Append(Chr(10)).Append(Chr(10)).Append("[错误语句]").Append(Chr(10)).Append(strSQL)                Call myDbError.AddErrorLog(myDbError.sbrErrorText)                ErrorNotice = myDbError.sbrErrorText.Replace(Chr(10), "<br>").ToString            End Try            MyConnection.Close()        End Sub        Public Function SelectDataSet(Optional ByVal ConI As Integer = 0) As DataSet '读取数据,返回DataSet            ThisError = False            Dim MyConnection As SqlConnection = New SqlConnection(ConStr(ConI))            Dim MyCommand As SqlDataAdapter            Dim DS As DataSet = New DataSet()            Try                MyCommand = New SqlDataAdapter(strSQL, MyConnection)                MyCommand.Fill(DS, "My")                MyConnection.Close()            Catch ex As Exception                isError = True                ThisError = True                Dim myDbError As DbError = New DbError()                myDbError.sbrErrorText = New StringBuilder()                myDbError.sbrErrorText.Append("[错误原因]").Append(Chr(10)).Append("Sql语句执行时出错。").Append(Chr(10)).Append(Chr(10)).Append("[连接序号(ConI)]").Append(ConI).Append(Chr(10)).Append(Chr(10)).Append("[错误语句]").Append(Chr(10)).Append(strSQL)                Call myDbError.AddErrorLog(myDbError.sbrErrorText)                ErrorNotice = myDbError.sbrErrorText.Replace(Chr(10), "<br>").ToString            End Try            Return DS        End Function


2.自定义一个类,比如Site.Admin.AdminDb,里面包含了Add、Delete、Login、Update等过程(函数),Sql语句都放在这个类里面。以下为部分代码:
VB.NET code
        Public Function Add() As Integer '添加管理员帐号            '如果管理员帐号存在,则返回0;如果不存在,则添加管理员帐号,返回新AdminID            If IsExist() > 0 Then                Return 0            Else                Call Filter()                Dim MyDB As SqlDB = New SqlDB()                MyDB.strSQL = "Insert Into [Admin_User] " & _                        "(TrueName, AdminName, UserPass) " & _                        "Values ('" + TrueName + "', '" + AdminName + "', '" + UserPass + "')"                MyDB.Execute()                AdminId = IsExist()            End If        End Function        Public Sub Delete(ByVal AdminId As String) '删除管理员帐号            Dim MyDB As SqlDB = New SqlDB()            MyDB.strSQL = "Delete From [Admin_User] Where AdminId=" + AdminId            MyDB.Execute()        End Sub        Public Sub ModifyUser() '修改用户名及密码            Call Filter()            Dim MyDB As SqlDB = New SqlDB()            MyDB.strSQL = "Update [Admin_User] set " & _                    "AdminName = '" + AdminName + "'"            If UserPass.Length > 0 Then                MyDB.strSQL += ", UserPass = '" + UserPass + "'"            End If            MyDB.strSQL += " Where AdminId=" + AdminId.ToString            MyDB.Execute()        End Sub 



3.在后台管理员操作的Admin.aspx绑定的Admin.aspx.vb中进行流程控制,并调用Site.Admin.AdminDb中的过程(函数)进行数据操作,部分代码如下:
VB.NET code
        If Not IsPostBack() Then            Dim strAction As String = Request.QueryString("Action")            Select Case strAction                Case "Add"                    Call LoatAddData()                Case "Delete"                    Call Delete()                Case "ModifyUser"                    Call LoatModifyUserData()                Case "ModifyUserRights"                    Call LoadUserRightsData()                Case Else                    '有数据提交                    Dim strAction2 As String = Request.Form("Action2")                    Select Case strAction2                        Case "ModifyUserRightsTo"                            Call ModifyUserRightsTo()                        Case Else                            Call LoadList()                    End Select            End Select        End If    Sub LoadList()        pnlList.Visible = True        Dim myAdminDb As AdminDb = New AdminDb()        Dim DataTable As DataTable = myAdminDb.GetAdminList()        rptList.DataSource = DataTable        rptList.DataBind()        DataTable.Dispose()    End Sub    Sub Delete()        Dim strAdminId As String = Request.QueryString("AdminId")        If strAdminId = "" Or Not IsNumeric(strAdminId) Then            Response.Write(WebNotice.SetAlert("错误的参数!", "?Action="))            Response.End()        Else            Dim MyAdminDb As AdminDb = New AdminDb()            MyAdminDb.Delete(strAdminId)            Response.Write(WebNotice.SetAlert("删除成功!", "?Action="))            Response.End()        End If    End Sub


4.在Admin.aspx文件中用一个Repeater控件显示管理员列表
HTML code
<asp:Repeater ID="rptList" runat="server">    <headertemplate>      <TR align=center>        <TD height=22 class=forumHeaderBackgroundAlternate>用户名</TD>        <TD class=forumHeaderBackgroundAlternate>登录次数</TD>        <TD class=forumHeaderBackgroundAlternate>上次登录时间</TD>        <TD class=forumHeaderBackgroundAlternate>上次登录IP</TD>        <TD class=forumHeaderBackgroundAlternate>操作</TD>      </TR>    </headertemplate>    <itemtemplate>      <TR>      <TD class=forumRow align=center><A href=?Action=EditPass&AdminId=<%#container.DataItem(0)%>><%#container.DataItem(2)%></A></TD>        <TD class=forumRow align=center><%#container.DataItem(3)%></TD>        <TD class=forumRow align=center><%#container.DataItem(4)%></TD>        <TD class=forumRow align=center><%#container.DataItem(5)%></TD>        <TD class=forumRow align=center><A href=?Action=ModifyUser&AdminId=<%#container.DataItem(0)%>>修改密码</A> | <A href=?Action=ModifyUserRights&AdminId=<%#container.DataItem(0)%>>修改权限</A> | <A href="?Action=Delete&AdminId=<%#container.DataItem(0)%>" onClick="javascript:return confirm('确实要删除这个帐号吗?')">删除</A></TD>      </TR>    </itemtemplate>    <footertemplate>    </footertemplate>  </asp:Repeater>


[解决办法]
分清楚就好,何必在意是否符合

热点排行