问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何创建 ASP.NET 测试页

发布网友 发布时间:2022-04-27 10:13

我来回答

1个回答

热心网友 时间:2022-04-14 22:32

实际上,这是确保以后的生产解决方案中的 ASP.NET 页和组件能够按照预期方式工作的唯一办法。这对于从解决方案中的某个层调用其他层时的验证信任边界和安全性问题尤其正确。 另外,在进行测试时,请勿拘泥于创建生产类接口。您只需测试目标方法。实际上,故意创建一些您不愿以之为最终生产解决方案的“丑陋”测试页是一个好的策略!本文中,我创建了一些非常简单的 ASP.NET 页,其中包含一个测试记录列表和一个用于添加、编辑和删除测试记录的输入表单。 例如,以下是用于测试主题记录的 WebForm 布局。您会发现,它包含错误消息或其他消息的状态标签、记录计数标签、显示记录列表的数据网格、用于输入检索时使用的记录 ID 的输入框以及支持添加、编辑和删除记录的小表格(参见图 1)。 图1:用于测试主题记录的 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.StoredProcere .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 SubGetItem 方法的另一个重要方面是使用了返回值参数。它在前几行代码中进行声明,并在执行存储过程后进行检查。请注意,我检查了已知错误代码 100 和 101。有关其他错误的处理方法,我们将在以后介绍如何创建成熟的中间层时进行介绍。问题在于,我要利用返回值并在需要时抛出一个自定义异常。 对于本解决方案示例,我最终生成了六个 Web 表单,并用它们测试了将近 30 个存储过程和自定义函数。您可在本文开始部分列出的下载软件包中找到所有这些完成的表单。 现在我们已经定义了表、创建了存储过程和函数并生成了 ASP.NET Web 表单,因此可以使用 Visual Studio .NET 2003 生成数据库层的安装脚本了。数据库管理员(有时是您自己)可以将此脚本应用到生产服务器上。 生成源代码和安装脚本Visual Studio .NET 的另一个重要功能是它能够为现有数据库生成一个完整的生成脚本。实际上,您可以使用 Visual Studio .NET 为整个数据库层生成源代码(包括生成表和索引、授权、存储过程等),还可以生成一个可用于在现有 SQL Server 上安装这些数据库对象的命令行脚本。 生成安装脚本非常容易,它包括两个步骤:首先,需要生成 T-SQL 脚本来创建数据库对象(表、索引、过程等)。然后,生成一个针对目标 SQL Server 执行 T-SQL 脚本的命令行脚本。 生成T-SQL 脚本 生成安装脚本之前,需要生成一个脚本集合,包括创建数据库中的所有对象(表、索引、约束条件、用户等)。 图2:生成脚本集合以下是生成 T-SQL 脚本的步骤:·在 Server Explorer(服务器资源管理器)中,在选定的数据库节点 (DotNetKB) 上单击鼠标右键,然后从上下文相关菜单中选择 Generate Create Script...(生成创建脚本...),打开 Generate Create Scripts(生成创建脚本)对话框。·在 General(常规)选项卡上,选中 Script all objects(编写全部对象脚本)复选框。·在 Formatting(格式化)选项卡上,选中除最后一个复选框以外的所有复选框(仅与 7.0 版脚本兼容的功能)。仅在您的目标服务器是 SQL Server 7.0 而不是 SQL Server 2000 时,才需要最后一项。·在 Options(选项)选项卡上,在 Security Scripting Options(安全性脚本选项)部分,选中除 Script SQL Server logins(撰写 SQL Server 登录脚本)之外的所有选项。确保选中 Table Scripting Options(表脚本选项)部分中的所有复选框。同时保留 File Format(文件格式)和 Files to Generate(生成的文件)的默认单选按钮。最后,当所有设置均已设置正确时,单击 OK(确定)按钮开始脚本生成过程。·系统将提示您指定文件位置。默认情况下,Visual Studio .NET 将指向现有数据库项目中的 Create Scripts(创建脚本)文件夹。单击 OK(确定)按钮接受此默认位置。 该过程完成后,您将获得保存数据库中各对象的文件列表。此脚本集合还包含了用于创建相应的用户并为其授予正确权限的脚本。您甚至可以将这些信息保存到 Visual SourceSafe 中,用于处理以后的版本问题。最后,您可以根据需要将这些文件传送给其他人,使他们可以直接更新或更改这些文件。至此,已经完成了数据库层的完整源代码。 生成安装脚本 最后一个步骤是让 Visual Studio .NET 2003 生成一个命令行脚本,用于读取所有 T-SQL 脚本并根据目标 SQL Server 运行这些脚本。为此,需要完成以下步骤。 ·在 Solution Explorer(解决方案资源管理器)中,在项目名称 (DotNetKB) 上单击鼠标右键,然后从上下文相关菜单中选择 Create Command File...(创建命令文件...),打开 Create Command File(创建命令文件)对话框。·如果需要,可以更新 Name of Command File(命令文件名称)输入框,然后选择合适的验证方案(除非您需要远程连接服务器,否则请使用 Microsoft Windows�0�3 NT�0�3)。最后,单击 Add All(全部添加)按钮,以便将所有 T-SQL 脚本都包含在安装操作中。·然后,单击 OK(确定)按钮生成脚本。这样即可将完整的脚本加载到编辑器窗口(参见图 3)中,您可以在该窗口中检查脚本,所做的更改将在您关闭窗口时得到保存。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我买了一辆爱玛电动车型号是TDR236Z-1 请问这款车好吗?怎么感觉没有人... vivoS17Pro在哪里设置快捷指令 设置快捷指令位置介绍 全面指南苹果快捷指令 畅聊天下是什么意思 坦克重48t,高2m,每条履带与地面接触面积为3m²,有潜渡功能 质量50kg,一只脚与地面的接触面积200cm²,那么这个人站着的时候对地 ... ...地面接触面积100㎝² 求此时自行车对地面的压强 ...与地面的接触面积为200cm²,求它对地面的压强为多大? 要过程_百度... ...与地面的总接触面积为200cm²,车轮的最大压强为200000pa。_百度知... ...接触面积150cm²,当卡车装6t货物时,对地面压强多大 word邀请函怎么做 bitkeep钱包的u怎么转 bitkeepavax的u怎么转到币安 转币到可盈可乐钱包,如何查询到账? APL硬币 的TXID是不是一串数字 比特币的交易延展性指的是什么 吉他谱的种类 有没有适合弹唱的比较简单的日本歌曲,男的.不要太老的.求吉他谱和歌词.歌曲名字. 求brand new melody罗马拼音歌词,和吉他乐谱,谢谢 五线谱在吉他上的位置? 六线谱和五线谱有什么区别吗? 五线谱中,和弦前的竖着的波浪线是什么意思?怎么处理? 乐谱怎么写?能教我吗???、、 古典吉他五线谱怎么看音符是第几把位 如何看古典吉他的五线谱? 吉他上的1234567在哪 吉他谱上的字母P是什么意思 C调第一个和弦不是五弦三品 四弦二品 二弦一品 怎么还有一个六弦三品呢?还有数字什么意思? 哪位大大给解释下吉他和弦那些 C D E F ……啥的是神马 古典吉他五线谱上一根直角线,上标罗马数字是什么意思? IDC Wallet转币一直长时间不确认怎么办? 新版qq表情雨大召唤 qq触发表情雨?新婚快乐那样的有吗? QQ对话框里的掉落动画是怎么弄得 最新版本qq发什么屏幕上会出现表情 QQ表情大召唤术里有多少词可用,它的编辑在手机文件夹哪里 表情大召唤术 么么哒,棒棒糖,么么哒,生日快乐,恭喜,我也爱你,清明时节雨纷纷,两只老虎跑得快 新版qq发什么会有表情跳动 QQ表情发什么词语才会掉下来 qq是怎么下表情雨的。 qq里面怎么让表情从上面掉下来? qq发 么么哒 会跳出表情,那么还有什么其他短语能做到呢? 新版手机qq发什么会掉表情 qq打哪些字会掉落表情雨 在qq上发一些什么词,它会有东西跳下来? qq表情太阳月亮下雨闪电拥抱礼物连在一起什么意思 QQ邮件从QQ邮箱发出后如何知道是否发出与否?怎么查? 英雄联盟之谁与争锋最新章节,英雄联盟之谁与争锋无弹窗全文阅读 英雄联盟之谁与争锋全文阅读最新章节 身未升腾思退步,功成应忆去时言,只因先主叮咛后,星落秋风五丈原 ~ 高人帮帮解释下