数据库,比如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》((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.如果你没有安装的话,可以在此下载并安装:()。
打开SQL Server Management Studio,如图1所示,Management Studio首先问我们连接什么服务器,在server name里键入“localhost/SQLExpress” ,在Authentication下拉列表里选“Windows Authentication” 。点Connect.
图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差不多:
图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”.