• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > 在ASP.NET 2.0中操作数据之七十三:用Managed Code创建存储过程和用户自定义函数(上部分)

在ASP.NET 2.0中操作数据之七十三:用Managed Code创建存储过程和用户自定义函数(上部分)

作者:heker2007 字体:[增加 减小] 来源:互联网 时间:2017-05-11

heker2007通过本文主要向大家介绍了在ASP.NET 2.0中操作数据之七十三:用Managed Code创建存储过程和用户自定义函数(上部分)等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

导言:

  数据库,比如Microsoft's SQL Server 2005使用Transact-Structured Query Language (T-SQL)来插入、修改、检索数据.绝大多数数据库系统都包含constructs来对一系列的SQL statements进行分组,这些statements可以作为单独的单元来执行.存储过程就是一个例子,另一个例子是用户自定义函数(UDFs), 我们将在第9步进行详细的探讨.

  SQL是设计来处理一系列数据的. SELECT,UPDATE,和DELETE statements适用于相应表的所有记录,且通过WHERE字句来进行筛选.也有很多的特性被设计来一次处理一条记录,或操作标量数据(scalar data).比如CURSORs允许一次遍历所有的记录.字符串操作功能,比如LEFT, CHARINDEX, 以及PATINDEX用来处理标量数据.SQL也包含了控制流声明,比如IF和WHILE.

  在Microsoft SQL Server 2005之前,存储过程和用户自定义函数UDFs只能当做一个T-SQL statements集来创建,而SQL Server 2005设计时包含Common Language Runtime (CLR)。因此,对一个SQL Server 2005数据库里的存储过程和用户定义方法,我们可以用managed code来进行创建。那就也说你可以在一个C#类里创建一个存储过程或用户定义函数.这样一来我们就可以在.NET Framework或你自己定义的类里面使用这些存储过程或方法.

在本文我们将考察如何创建存储过程和用户定义函数,以及如何将它们整合进数据库Northwind.让我们开始吧。

  注意:管理数据库对象(Managed database objects)与SQL数据库里包含的相对应的数据库对象比较起来有一些优势,主要体现在:使用的语言更丰富、熟悉;可以使用现有的代码和逻辑.但是在处理那些并不包含很多逻辑的一系列数据时,其效率可能要低一些.关与managed code相较T-SQL而言的优势,请参阅文章《Advantages of Using Managed Code to Create Database Objects》(http://msdn2.microsoft.com/en-us/library/k2e1fb36(VS.80).aspx)

第一步:将Northwind数据库移出App_Data文件夹

  本教程到目前为止使用的是放在App_Data文件夹里的Microsoft SQL Server 2005 Express版本的数据库.

  然而在本教程,我们将Northwind数据库移出App_Data文件夹,再使用一个被注册为SQL Server 2005 Express版本数据库的实例。虽然我们不移出的话也可以执行本文的这些步骤,不过将其注册为一个SQL Server 2005 Express版本数据库的实例的话,这些步骤就要简单的多了。

  本文下载代码里包含2个数据库文件:NORTHWND.MDF 和 NORTHWND_log.LDF,将它们放在一个叫DataFiles的文件夹里,先关闭Visual Studio,再将NORTHWND.MDF 和 NORTHWND_log.LDF文件从根目录的App_Data文件夹里移出到根目录以外的其它文件夹里。完成后,我们需要将Northwind数据库注册为SQL Server 2005 Express版本数据库的实例。为此我们要用到SQL Server Management Studio.如果你没有安装的话,可以在此下载并安装:(http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=C243A5AE-4BD1-4E3D-94B8-5A0F62BF7796)。

  打开SQL Server Management Studio,如图1所示,Management Studio首先问我们连接什么服务器,在server name里键入“localhost/SQLExpress” ,在Authentication下拉列表里选“Windows Authentication” 。点Connect.

http://files.weikejianghu.com/file_images/article/201605/2016052009143614.png
图1:连接恰当的数据库实例

  一旦连接后,Object Explorer窗口将会把SQL Server 2005 Express版本数据库实例的信息显示出来,比如databases, security information, management options等.

  我们需要将DataFiles文件夹里的Northwind数据库作为SQL Server 2005 Express版本数据库实例。在Databases文件夹里右键单击,选“Attach”项。这将打开Attach Databases对话框.点 Add 按钮,找到NORTHWND.MDF文件,再点OK。这样,你的屏幕看起来和图2差不多:

http://files.weikejianghu.com/file_images/article/201605/2016052009143615.png
图2:连接到合适的数据库实例

  注意:当通过Management Studio连接到SQL Server 2005 Express版本的数据库实例时,Attach Databases对话框不允许你浏览用户私人文件目录(user profile directories),比如My Documents.因此,一定要将NORTHWND.MDF 和 NORTHWND_log.LDF文件放在一个非用户私人文件目录里.

  点OK完成后,Attach Databases对话框将会关闭,Object Explorer将会将新添加的数据库列出来。问题来了,它的名字可能是这样的:9FE54661B32FDD967F51D71D0D5145CC_LINE ARTICLES/DATATUTORIALS/VOLUME 3/CSHARP/73/ASPNET_DATA_TUTORIAL_75_CS/APP_DATA/NORTHWND.MDF,我们将其重命名为“Northwind”,方法是在该数据库右键单击,选“Rename”.

http://files.weikejianghu.com/file_images/article/201605/2016052009143716.png
图3:将数据库重命名为“Northwind”

第二步:在Visual Studio里创建一个新的解决方案和SQL Server Project

  要在SQL Server 2005里创建管理存储过程或用户定义函数,我们要在一个类里用C# 代码写这些存储过程和用户定义函数。一旦写完后,我们需要将该类编译为一个 .dll文件,将该编译文件注册到一个SQL Server 数据库,然后在数据库里创建一个存储过程或用户定义函数以指向编译文件里对应的方法。这些步骤要手工完成。我们可以在文本编辑器里写代码,在命令行里用C#编译器 (csc.exe)对其进行编译;用CREATE ASSEMBLY 命令或从Management Studio里将其注册到数据库.添加存储过程或用户定义函数的方法类似.幸运的是 Visual Studio的Professional 和 Team Systems 版本包含一个SQL Server Project类型,它可以自动的完成这些工作.在本文,我们将使用SQL Server Project类型来创建一个管理存储过程和用户定义函数。

  注意:如果你使用的是Visual Studio的Visual Web Developer 或 Standard版本,你就要手动完成了。在Step 13,我们将详细介绍手动完成的细节.我们鼓励你从Steps 2 看到Steps 12 ,再看Step 13.因为Steps 2 到Steps 12包含了很重要的SQL Server 配置说明,不管你用的是什么版本.

  打开Visual Studio. 从 File 菜单,选New Project以打开New Project对话框(见图4).点到Database工程类型,在右边的Templates列表,选择创建一个新的SQL Server Project.我将其命名为ManagedDatabaseConstructs并放在一个名为Tutorial75的解决方案里.

http://files.weikejianghu.com/file_images/article/201605/2016052009143717.png
图4:创建一个新的SQL Server Project

  在New Project对话框里点OK按钮,创建该解决方案和SQL Server Project.

  一个SQL Server Project依赖于一个具体的数据库.因此,接下来我们要指定该信息。如图5所示,New Database Reference对话框里指向了Northwind数据库,也就是我们在第一步里注册的SQL Server 2005 Express版本数据库实例.

http://files.weikejianghu.com/file_images/article/201605/2016052009143718.png
图5:将SQL Server Project与Northwind数据库联系起来

  为了对我们将要在本工程创建的管理存储过程和用户自定义函数进行调试,我们需要激活SQL/CLR调试支持.无论什么时候将一个SQL Server Project与新的数据库联系起来时(就像我们在图5做的那样),Visual Studio会询问我们是否激活SQL/CLR调试(如图6),选Yes.

http://files.weikejianghu.com/file_images/article/201605/2016052009143719.png
图6:激活SQL/CLR调试

  此时,这个新的SQL Server Project已经添加到解决方案里了。其包含一个Test Scripts文件夹,文件夹里是一个Test.sql文件。它用来对本工程添加的管理数据库对象进行调试,我们将在第12步考察调试.

  我们现在可以对该工程添加新的管理存储过程和用户自定义函数.不过在此之前,我们要将现有的web应用程序包含进解决方案。在 File 菜单里选Add项,再选Existing Web Site.浏览到相应的文件夹,点OK.如图7所示,这将更新解决方案以包含2个工程:即website和名为ManagedDatabaseConstructs的SQL Server Project.

http://files.weikejianghu.com/file_images/article/201605/2016052009143720.png
图7:该解决方

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-05-11AJAX JavaScript反射机制的介绍
  • 2017-05-11ASP.NET MVC 控制器与视图
  • 2017-05-11ASP.Net开发常见的一些问题总结
  • 2017-05-11C#中实现伪静态页面两种方式介绍
  • 2017-05-11asp.net DataSet转换成josn并输出示例
  • 2017-05-11ASP.NET MVC中HtmlHelper控件7个大类中各个控件使用详解
  • 2017-05-11asp.net下用Aspose.Words for .NET动态生成word文档中的数据表格的方法
  • 2017-05-11asp.net 点缩略图弹出随图片大小自动调整的页面
  • 2017-05-11手把手教你在.NET中创建Web服务实现方法
  • 2017-05-11asp.net 数据访问层 存储过程分页语句

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • php使用socket编程示例
    • .NET客户端实现Redis中的管道(PipeLine)与事物(Transactions)
    • asp.net 2.0多语言网站解决方法
    • Asp.net简单代码设置GridView自适应列宽不变形实现思路与代码
    • asp.net Web Service 接口大量数据传输解决方案
    • .NET的Ajax请求数据提交实例
    • ASP.NET 中的Application详解
    • .NetCore实现上传多文件的示例详解
    • .NET 动态编译
    • 基于SignalR的消息推送与二维码扫描登录实现代码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有