各位都来讨论一下这个问题吧?

PCBoy008 2007-08-08 05:37:02
关于分层,我现在这样处理:

功能说明:在show.aspx显示用户详细资料,并增加1点击量



一、展示层

show.aspx
show.aspx.vb

代码:

Dim u As New UserDB

u.VisitIncrease(Session("UserID"), 1) '增加1点击量
lblUserDetail.Text = u.GetDetailInfo(Session("UserID")) '用户详细资料

二、业务逻辑(伪:含数据库操作)

Public Class UserDB

'增加用户点击量
Public Function VisitIncrease(UserID As Integer, IncreaseNumber As Integer) As Integer
Dim SQL As String
SQL = String.Format("Update UserInfo Set Visit = Visit + {1} Where UserID = {0}", UserID, IncreaseNumber)
Return DB.ExecuteNonQuery(SQL)
End Function

'用户详细资料
Public Function GetDetailInfo(UserID As Integer) As String
Dim SQL As String
SQL = String.Format("Select Detail From UserInfo Where UserID = {0}", UserID)
Return DB.ExecuteScalar(SQL).ToString()
End Function

End Class

三、数据库

Public Class DB

'执行SQL语句
Public Shared Function ExecuteNonQuery(SQL As String) As Integer
Dim cn As New SqlConnection(GetConnectionString(ConnectionName))
Dim cmd As New SqlCommand
Dim RowAffect As Integer
cmd.Connection = cn
cmd.CommandText = SQL
cn.Open()
RowAffect = cmd.ExecuteNonQuery()
cn.Close()
Return RowAffect
End Function

'查询SQL语句,返回单一值
Public Shared Function ExecuteScalar(SQL As String) As Object
Dim cn As New SqlConnection(GetConnectionString(ConnectionName))
Dim cmd As New SqlCommand
Dim val As Object
cmd.Connection = cn
cmd.CommandText = SQL
cn.Open()
val = cmd.ExecuteScalar()
cn.Close()
return val
End Function

End Class
...全文
183 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ilovesport 2007-08-31
  • 打赏
  • 举报
回复
jf +study
PCBoy008 2007-08-31
  • 打赏
  • 举报
回复
upp
PCBoy008 2007-08-29
  • 打赏
  • 举报
回复
up
PCBoy008 2007-08-10
  • 打赏
  • 举报
回复
回 sunzhong2003(我没入门) :

业务逻辑层中每个单元分别执行一项操作,在不同的页面会分别使用到不同的业务单元,按你的意思,对于多个操作的页面使用一次执行全部语句(假设这个方法叫 DoSomeAction)那么这个方法与原有单元便有重复的动作,这似乎不利于对象方法的可重用性。

另:假如一个页面中应用到了多个业务模块,例如,既有用户模块的方法(UserDB), 又应用到了关于广告模块的方法(AdDB),那么 DoSomeAction 应该放置在哪个模块中?


欢迎各位参与讨论!
天开之想 2007-08-09
  • 打赏
  • 举报
回复
学习
sunzhong2003 2007-08-08
  • 打赏
  • 举报
回复
写存储过程或分号分开的SQL语句,一次执行全部语句
返回数据集\使用缓存,不管是数据缓存,还是页面缓存
PCBoy008 2007-08-08
  • 打赏
  • 举报
回复

现在的问题是:

在show.aspx.vb中,执行了两个方法,分别是从更新数据库值,和从数据库中取值。

在两个方法中分别打开和关闭一次连接
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

我觉得这样操作有可能影响性能,并且在同一页面中有可能更多的业务(例如显示最近10条新闻)执行数据库操作
有何方法可以解决此问题?

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧