您的位置:软件 > 开发者网络 > 微软开发专栏 > Visual Studio.net专栏 > ASP.net > 正文
创建ASP.NET数据存储层
[文章信息]
作者:
时间:2003-12-10
出处:Microsoft
责任编辑:方舟
[文章导读]
学习如何使用SQL Server 2000和VS.NET 2003为DotNetKB ASP.NET解决方案创建数据存储层
advertisement
热点推荐
· 好友上线通知——QQ千里眼
· 解析Windows操作系统的管理
· 剑走偏锋——灵巧的旁注攻击
· Mail Notifier邮件提醒工具
· Linux操作系统网络应用解疑
[正文]

上一页  1 2 3 4 5 6 7  下一页

  创建 ASP.NET 测试页

  创建测试页始终是访问 SQL Server 数据层并验证输入和输出参数是否得到正确处理的好办法。实际上,这是确保以后的生产解决方案中的 ASP.NET 页和组件能够按照预期方式工作的唯一办法。这对于从解决方案中的某个层调用其他层时的验证信任边界和安全性问题尤其正确。

  另外,在进行测试时,请勿拘泥于创建生产类接口。您只需测试目标方法。实际上,故意创建一些您不愿以之为最终生产解决方案的“丑陋”测试页是一个好的策略!本文中,我创建了一些非常简单的 ASP.NET 页,其中包含一个测试记录列表和一个用于添加、编辑和删除测试记录的输入表单。

  例如,以下是用于测试主题记录的 WebForm 布局。您会发现,它包含错误消息或其他消息的状态标签、记录计数标签、显示记录列表的数据网格、用于输入检索时使用的记录 ID 的输入框以及支持添加、编辑和删除记录的小表格(参见图 10)。


图 10:用于测试主题记录的 WebForm 布局

  在创建测试页时,最好使代码简洁明了。我通常会为每个按钮添加一小段代码,以调用本地方法来处理数据库操作。以下是 TopicTest.aspx 页上 Get Record(获取记录)按钮的代码。

Private Sub btnGetTopic_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)  Handles btnGetTopic.Click
 Try
  Dim ID As Integer = Int32.Parse(txQueryID.Text)
  GetItem(ID) ' 进行数据库调用
  txID.Text = txQueryID.Text
  txTitle.Text = mTitle
  txDescription.Text = mDescription
  lbStatus.Text = "success!"
 Catch ex As Exception
  lbStatus.Text = ex.Message
 End Try
End Sub

  请注意,本方法中实际执行的唯一操作是由 GetItem(ID) 方法调用处理的。它执行数据库调用并使用返回的值设置本地变量。以下是 GetItem 方法的代码。请注意,它使用了大量的 SqlParameter 对象来处理输入和输出值。

Private Sub GetItem(ByVal ID As Integer)
Try
 pr = New SqlParameter("RETURN_VALUE", SqlDbType.Int)
 pr.Direction = ParameterDirection.ReturnValue
 Dim pTitle As SqlParameter = New SqlParameter
 With pTitle
  .Direction = ParameterDirection.Output
  .DbType = DbType.String
  .ParameterName = "@Title"
  .Size = 30
 End With
 Dim pDescription As SqlParameter = New SqlParameter
 With pDescription
  .Direction = ParameterDirection.Output
  .DbType = DbType.String
  .ParameterName = "@Description"
  .Size = 500
 End With

 cd = New SqlCommand

 With cd
  .CommandText = "TopicsGetItem"
  .CommandType = CommandType.StoredProcedure
  .Parameters.Add(New SqlParameter("@AdminCode", "adm"))
  .Parameters.Add(New SqlParameter("@ID", ID))
  .Parameters.Add(pTitle)
  .Parameters.Add(pDescription)
  .Parameters.Add(pr)
  .Connection = cn
  .Connection.Open()
  .ExecuteNonQuery()
  .Connection.Close()
 End With

 ' 检查返回代码
 If Not pr.Value Is Nothing Then
  Select Case Int32.Parse(pr.Value)
   Case 100 : Throw New ApplicationException("Access violation")
   Case 101 : Throw New ApplicationException("Invalid ID")
  End Select
 End If
 ' 设置返回值
 mTitle = pTitle.Value.ToString()
  mDescription = pDescription.Value.ToString()
Catch ex As Exception
 Throw New Exception(ex.Message, ex)
End Try
End Sub

  GetItem 方法的另一个重要方面是使用了返回值参数。它在前几行代码中进行声明,并在执行存储过程后进行检查。请注意,我检查了已知错误代码 100 和 101。有关其他错误的处理方法,我们将在以后介绍如何创建成熟的中间层时进行介绍。问题在于,我要利用返回值并在需要时抛出一个自定义异常。

  对于本解决方案示例,我最终生成了六个 Web 表单,并用它们测试了将近 30 个存储过程和自定义函数。您可在本文开始部分列出的下载软件包中找到所有这些完成的表单。

  现在我们已经定义了表、创建了存储过程和函数并生成了 ASP.NET Web 表单,因此可以使用 Visual Studio .NET 2003 生成数据库层的安装脚本了。数据库管理员(有时是您自己)可以将此脚本应用到生产服务器上。


上一页  1 2 3 4 5 6 7  下一页

·"WAP天极之IT新闻资讯,50万元等你拿"    ·天极WAP之游戏狂图,50万元等你下载

天极社区邀请您:写博客日记  上传相片   论坛聊天  订阅电子杂志  推荐网摘   免费图铃工具
笔名:   请您注意:

 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

 天极网拥有管理笔名和留言的一切权利。
评论:
 

发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容阅读排行榜
  • 创建用于ASP.NET的分页控件
  • 为ASP.NET控件添加设计时支持
  • 初探ERP的数据库框架
  • 利用ASP.NET访问共享网络资源
  • ASPX页Web服务调用性能优化
  • ASP.NET中编程杀死进程
  • XmlTextWriter创建XML文件
  • ASP.NET应用程序规划与设计
  • 让手机帮你抱得美人归
  • 光棍节、孙悟空 配件也能分公母
  • 好友上线通知——QQ千里眼
  • 解析Windows操作系统的管理
  • 史前巨鳄 超频三散热器
  • 明花有主 飞利浦LCD有奖活动完美收场
  • 剑走偏锋——灵巧的旁注攻击
  • 统统闪开,最超值5700LE登场
  • Advertisement