⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 在 visual studio _net 中使用 sql server 2000 生成数据库应用程序.htm

📁 在 Visual Studio .NET 中使用 SQL Server 2000 生成数据库应用程序.Matt Mannion 和 Jon Rauschenberger Clarity Consul
💻 HTM
📖 第 1 页 / 共 5 页
字号:
      <H3 class=dtH1><A name=sql_builddbappsinvsnet_topic2c></A>数据库设计器</H3>
      <P>数据库设计器是一个图形界面,可用于添加或修改数据库表、关系、索引、键和约束等。</P>
      <BLOCKQUOTE class=dtBlock><B><B class=le>注意:</B></B>数据库设计器要求使用 Visual 
        Studio .NET Enterprise Edition。</BLOCKQUOTE>
      <P>您可以为给定的数据库创建任意数目的关系图,一个表可以出现在任意数目的关系图中。这些关系图还可以用来记录数据库的设计。</P>
      <P>使用 SQL Server 数据库关系图时,需要注意一些事项。有关详细信息,请参阅 Visual Studio .NET 文档中的“SQL 
      Server 数据库的数据库设计器注意事项”。<B></B>该主题包含了更改数据类型、区分大小写以及其他信息。</P>
      <P><B>创建数据库关系图</B> 
      <OL type=1>
        <LI>打开数据库设计器:在服务器资源管理器的数据库节点下,右键单击 <B>Database</B> 
        <B>Diagrams</B>(数据库关系图),然后单击 <B>New</B> 
        <B>Diagram</B>(新建图表)。将打开数据库设计器,并显示 <B>Add 
        Table</B>(添加表)对话框,从中可以将现有表添加到关系图中。 
        <LI>将 <B>Customers</B> 表和 <B>ServiceCalls</B> 表添加到关系图中,然后单击 
        <B>Close</B>(关闭)。 
        <LI>关闭数据库设计器,然后保存该关系图(如果需要)。 </LI></OL>
      <P>创建关系图后,您可以右键单击关系图的背景将新表添加到关系图或数据库中。也可以右键单击一个表以维护列、键、索引、约束和关系等。数据库设计器与 
      SQL Server 企业管理器中的关系图工具非常类似(参阅图 8)。</P>
      <P class=fig><IMG alt="" 
      src="在 Visual Studio _NET 中使用 SQL Server 2000 生成数据库应用程序.files/sql_builddbappsinvsnet_08.gif" 
      border=0></P>
      <P class=label><B>图 8:数据库设计器关系图窗格</B></P>
      <H2 class=dtH1><A name=sql_builddbappsinvsnet_topic3></A>示例应用程序</H2>
      <P>为了演示其余的可视化数据库工具和数据访问类,我们将使用刚刚创建的 <B>ServiceCall</B> 数据库生成一个示例应用程序。</P>
      <P>要开始示例应用程序,需要创建一个新的 Visual Studio .NET 项目。</P>
      <P><B>创建新项目</B> 
      <OL type=1>
        <LI>在 <B>File</B>(文件)菜单中,选择 <B>New</B>(新建),然后单击 <B>Project</B>(项目)。 
        <LI>在 <B>Project Types</B>(项目类型)下,单击 <B>Visual Basic Projects</B>(Visual 
        Basic 项目),然后在 <B>Templates</B>(模板)下,单击 <B>Windows 
        Application</B>(Windows 应用程序)。 
        <LI>将项目命名为 <I>ServiceCall</I>,然后单击 
        <B>OK</B>(确定)。这样便创建了一个解决方案和一个项目,两者都名为“ServiceCall”。每个 Visual Studio .NET 
        解决方案都可以包含一个或多个项目。 
        <LI>打开服务器资源管理器窗口:在 <B>View</B>(视图)菜单中,单击 <B>Server</B> 
        <B>Explorer</B>(服务器资源管理器)。如果展开 Data Connections(数据连接)节点,可以看到先前创建的指向 
        ServiceCall<B></B> 数据库的连接。 </LI></OL>
      <P>生成此示例应用程序的第一步是创建一个用户定义的函数,以计算一个服务调用的总成本 ((LaborRate * Hours) + 
      PartsCost)。用户定义的函数可以是标量值函数或表值函数(创建用户定义的函数要求使用 Visual Studio .NET 
      Enterprise Edition)。标量值函数返回一个标量数据类型的单个值,并且可以显示在任何显示列名称的查询中。表值函数返回一个表,可用于 
      Transact-SQL 查询的 FROM 子句中。在 Visual Studio .NET 中,可以创建三种类型的用户定义函数: 
      <UL type=disc>
        <LI><B>标量值函数</B> - 返回单个标量值的函数。 
        <LI><B>内联函数</B> - 一种表值函数,返回通过单个 SELECT 语句定义的表值。 
        <LI><B>表值函数</B> - 一种表值函数,返回一个通过多个 Transact-SQL 语句定义的表。表值函数也称为多语句函数。 
      </LI></UL>
      <P><B>创建函数</B> 
      <OL type=1>
        <LI>在服务器资源管理器中刚刚创建的连接下,右键单击 <B>Functions</B>(函数)节点,然后选择 <B>New 
        Scalar-valued function</B>(新建标量值函数)。将打开 SQL 
        编辑器,该编辑器用于创建和维护函数及存储过程。系统提供了一个模板帮助您创建函数。 
        <LI>复制以下代码并将其粘贴到 SQL 编辑器中以创建函数:<PRE class=code>Create FUNCTION dbo.ComputeServiceCallTotal
(@LaborRate money = 0,
 @Hours float = 0,
 @PartsCost money = 0)
RETURNS money
AS
BEGIN
   RETURN ((@LaborRate * @Hours) + @PartsCost)
END
</PRE>
        <LI>单击 <B>Save</B>(保存)保存函数,或者在 <B>File</B>(文件)菜单中,单击 <B>Save 
        &lt;<I>function name&gt;</I></B>(保存 &lt;<I>函数名称&gt;</I>)。函数将作为对象保存在数据库中。 
        </LI></OL>
      <H3 class=dtH1><A name=sql_builddbappsinvsnet_topic3a></A>SQL 编辑器</H3>
      <P>SQL 编辑器使用颜色代码区分 Transact-SQL 
      关键字,从而尽可能减少语法错误并使代码更易于阅读。它还提供了用来创建新函数和存储过程的模板。SQL 编辑器还在每个 Transact SQL 
      语句的周围放置了细线框,用于将 Transact-SQL 代码分隔成命令段,并标识可以使用查询和视图设计器生成和修改的 Transact-SQL 
      语句块。</P>
      <H3 class=dtH1><A name=sql_builddbappsinvsnet_topic3b></A>查询和视图设计器</H3>
      <P>为了演示查询和视图设计器是如何工作的,我们将在服务器资源管理器中创建一个存储过程,该存储过程使用了我们刚刚创建的函数。</P>
      <P><B>创建存储过程</B> 
      <OL type=1>
        <LI>在 ServiceCall 连接下,右键单击 Stored Procedures(存储过程)节点,然后单击 New Stored 
        Procedure(新建存储过程)。这将打开 SQL 编辑器窗口,其中带有一个新的存储过程模板。 
        <P class=fig1><IMG alt="" 
        src="在 Visual Studio _NET 中使用 SQL Server 2000 生成数据库应用程序.files/sql_builddbappsinvsnet_09.gif" 
        border=0> 
        <P class=label><B>图 9:创建存储过程模板</B> </P>
        <LI>在 SQL 编辑器窗口中,为 <B>BrowseInvoiceTotals</B> 存储过程键入以下代码: <PRE class=code>Create PROCEDURE dbo.BrowseInvoiceTotals as
   Declare @TotalInvoice as money
   Set @TotalInvoice = dbo.ComputeServiceCallTotal(50, 5, 200)
   Select c.CustomerID, c.CustomerName, sc.ServiceDate,
   dbo.ComputeServiceCallTotal(sc.LaborRate, sc.Hours, sc.PartsCost) 
      as TotalInvoice
   From Customers c
   Inner Join ServiceCall sc on c.CustomerID = sc.CustomerID
Return
</PRE>
        <BLOCKQUOTE class=dtBlock><B class=le>注意:</B>用来声明和计算硬编码的 
          <B>@TotalInvoice</B> 值的代码仅用于演示目的。</BLOCKQUOTE>
        <LI>完成存储过程后,单击 <B>File</B>(文件)菜单中的 <B>Save</B>(保存),将存储过程保存在数据库中。 
</LI></OL>
      <P>请注意 SELECT 语句周围的细线框。在 Transact-SQL 查询框中单击右键,然后单击 <B>Design</B> <B>SQL 
      Block</B>(设计 SQL 块)。这将启动查询和视图设计器,可用于以图形化的方式生成或修改查询(参阅图 10)。 </P>
      <P class=fig>
      <P><A 
      href="http://msdn.microsoft.com/library/en-us/dnsql2k/html/sql_builddbappsinvsnet_10.gif" 
      target=_Top><IMG alt=单击此处查看大图像 
      src="在 Visual Studio _NET 中使用 SQL Server 2000 生成数据库应用程序.files/sql_builddbappsinvsnet_10_thumb.gif" 
      border=0></A></P>
      <P></P>
      <P class=label><B>图 10:查询和视图设计器表(单击图片以查看大图像) </B></P>
      <P>查询和视图设计器包括四个部分。最上面的部分包含关系图窗格,其中显示正在查询的表。您可以添加或删除表、选择或取消选择列、添加或删除表联接以及在此部分中按列指定顺序。第二部分包含网格窗格,其中显示查询中的列,并允许您选择排序类型和排序顺序、过滤标准以及按列分组。第三部分包含 
      SQL 窗格,其中显示查询的 SQL 
      语法。如果在此窗格中修改查询,其他窗格将更新以反映这些更改。如果对查询所做的更改无法在其他窗格中表示出来,这些更改将不可用。第四部分包含结果窗格,其中显示执行查询后的查询结果。</P>
      <P>查询和视图设计器对于视图和查询的工作原理相同,只是有些功能是专用于视图的。其中一个专用于 SQL Server 2000 
      的功能就是创建索引视图。</P>
      <P><B>创建索引视图 </B>
      <OL type=1>
        <LI>打开服务器资源管理器,右键单击 <B>Views</B>(视图),然后单击 <B>New View</B>(新建视图)。将显示 
        <B>Add Table</B>(添加表)对话框。 
        <LI>将 <B>Customers</B> 表添加到视图中,然后关闭 <B>Add Table</B>(添加表)对话框。 
        <LI>在关系图窗格中,选中 <B>CustomerID</B> 复选框和 <B>CustomerName</B> 复选框。 
        <LI>要使用索引,请右键单击关系图窗格的背景,然后单击 <B>Manage</B> <B>Indexes</B>(管理索引)。这将打开 
        <B>Indexes</B>(索引)对话框,从中可以指定关联的索引。您必须对视图中的表具有适当权限才能创建索引视图。 
        <LI>关闭 <B>Indexes</B>(索引)对话框,然后关闭查询和视图设计器。 </LI></OL>
      <P>您也可以使用查询设计器浏览表和更新表的内容。 
      <UL type=disc>
        <LI>在服务器资源管理器中,依次展开 ServiceCall Data Connection(ServiceCall 数据连接)节点和 
        Tables(表)节点并右键单击一个表,然后单击 <B>Retrieve Data from Table</B>(从表中检索数据)。 
      </LI></UL>
      <P>与表内容一同出现的数据网格就是查询设计器数据网格。请注意,一个工具栏将与数据网格一同打开,该工具栏可用于访问关系图窗格、SQL 
      窗格、网格窗格以及查询设计器的结果窗格。同样,这些功能也非常类似于企业管理器中的功能。</P>
      <H3 class=dtH1><A name=sql_builddbappsinvsnet_topic3c></A>调试存储过程</H3>
      <P>服务器资源管理器中另外一个强大的功能是存储过程调试。要调试 <B>BrowseInvoiceTotals</B> 
      存储过程,请打开服务器资源管理器,然后定位到 ServiceCall 连接中的 Stored Procedure(存储过程)节点。右键单击 
      <B>BrowseInvoiceTotals</B>,然后单击 <B>Step Into Stored 
      Procedure</B>(单步执行存储过程)。也可以双击存储过程打开编辑器,然后单击 <B>Database</B>(数据库)菜单中的 
      <B>Step Into Stored Procedure</B>(单步执行存储过程)。</P>
      <P>按 <B>F11</B> 键单步执行存储过程,并注意当执行到语句 <I>Set @TotalInvoice = 
      dbo.ComputeServiceCallTotal(50, 5, 200)</I> 
      时,调试器将离开存储过程并进入该函数。完成函数的调试后,调试器将返回存储过程。可以将鼠标指针移到 <B>@TotalInvoice</B> 
      变量之上,或者右键单击该变量并设置一个观察变量,以查看该变量的内容。也可以在 <B>Locals</B>(本地变量)窗口中查看变量的内容:在 
      <B>Debug</B>(调试)菜单中,突出显示 <B>Windows</B>(窗口),然后单击 <B>Locals</B>(本地变量)。在图 11 
      中,执行 Set 语句后,<B>Locals</B>(本地变量)窗口中显示 <B>@TotalInvoice</B> 的值为 
      450.0000。同样,从 Visual Studio .NET IDE 中也可以访问 Transact-SQL 语句调试工具。</P>
      <P class=fig>
      <P><A 
      href="http://msdn.microsoft.com/library/en-us/dnsql2k/html/sql_builddbappsinvsnet_11.gif" 
      target=_Top><IMG alt=单击此处查看大图像 
      src="在 Visual Studio _NET 中使用 SQL Server 2000 生成数据库应用程序.files/sql_builddbappsinvsnet_11_thumb.gif" 
      border=0></A></P>
      <P></P>
      <P class=label><B>图 11:SQL 调试器窗口表(单击图片以查看大图像)</B></P>
      <P>SQL 调试器具有某些局限性,其中包括: 
      <UL type=disc>
        <LI>表变量不能在 <B>Locals</B>(本地变量)窗口中显示。 
        <LI>Sql_variant、text、ntext、image 和 cursor 变量可以在 
        <B>Locals</B>(本地变量)窗口中显示,但只能用于显示。 
        <LI>不支持大于 64 KB 的存储过程。 
        <LI>不支持超过 32 层嵌套存储过程调用。 
        <LI>不支持向一个存储过程传递的参数超过 1023 个。 </LI></UL>
      <P>有关其他局限性,请参阅 <A 
      href="http://msdn.microsoft.com/library/en-us/vsdebug/html/_core_SQL_Debugging_Limitations.asp">SQL 
      Debugging Limitations</A>(英文)。</P>
      <BLOCKQUOTE class=dtBlock><B class=le>注意:</B>SQL 调试器使用分布式组件对象模型 (DCOM) 
        进行客户端计算机和 SQL Server 之间的通信。为了使调试器能够正常工作,必须使用 Dcomcnfg.exe 设置正确的 DCOM 
        权限。有关详细信息,请参阅 <A 
        href="http://msdn.microsoft.com/library/en-us/trblsql/tr_servtools_5cfm.asp">Troubleshooting 
        the Transact-SQL Debugger</A>(英文)。此外,要进行调试,SQL Server 不能作为系统帐户运行。与 
        MSSQLSERVER 服务相关联的登录必须是一个有效的用户帐户。</BLOCKQUOTE>
      <H3 class=dtH1><A name=sql_builddbappsinvsnet_topic3d></A>数据集</H3>
      <P>现在,我们已具备 ServiceCall 
      数据库和连接、一个用户定义的函数以及一个存储过程。下一步,我们将使用该存储过程来创建一个用于填充数据网格的数据集。</P>
      <P><B>创建数据集</B> 
      <OL type=1>
        <LI>打开工具箱:在 <B>View</B>(视图)菜单中,单击 <B>Toolbox</B>(工具箱)。 
        <LI>在工具箱中,单击 <B>Data</B>(数据)选项卡,然后将一个 <B>SqlDataAdapter</B> 控件拖到 
        <B>Form1</B> 上。这将在 <B>Form1</B> 的设计窗口底部放置一个 <B>SqlDataAdapter1</B> 
        图标,并启动数据适配器配置向导。数据适配器配置向导收集与适配器将要管理的数据有关的信息。 
        <LI>当向导提示您提供要使用的数据连接时,请指定 ServiceCall 连接。 
        <P class=fig1><IMG alt="" 
        src="在 Visual Studio _NET 中使用 SQL Server 2000 生成数据库应用程序.files/sql_builddbappsinvsnet_12.gif" 
        border=0> 
        <P class=label><B>图 12:选择数据连接属性表</B> </P>
        <LI>下一步,从以下选项中选择一种查询类型: 
        <UL type=disc>
          <LI><B>Use SQL statements</B>(使用 SQL 语句)- 提供 Transact-SQL 
          语句或使用查询生成器以图形方式设计查询。 
          <LI><B>Create new stored procedures</B>(创建新存储过程)- 向导自动基于自身提供的 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -