DBAWebFormsVisual Studio 2005ADO.NET.NET 2.0C# 2.0IntermediateDevVisual StudioSQL ServerSQLWindows.NETVisual BasicASP.NETC#
使用 SqlNetFramework 和 CodeSmith 创建 CRUD 操作






2.60/5 (2投票s)
2007 年 4 月 20 日
4分钟阅读

32250
本文将介绍如何使用 SqlNetFramework 和 CodeSmith 生成用于 CRUD 操作的 SQL 代码。
引言
SqlNetFramework 有助于减少连接和执行关系数据库操作所需的代码量。在接下来的文章中,我们将展示如何减少 SQL 语句的开发时间。为了自动化 SQL 代码的创建,我们将使用 CodeSmith 工具。我们将重点关注自动化用于维护数据库表的创建、读取、更新和删除操作。
安装软件
在使用新工具创建 CRUD 操作之前,需要安装所需的软件。
检查 CRUD 模板
现在您可以检查 CRUD 模板了。假设您已经对 CodeSmith 的工作方式有了基本的了解。CodeSmith 提供了非常易于使用的初学者教程,这些教程包含在 CodeSmith 安装中。
- 打开 CodeSmith Studio。
- 打开 CRUD 模板。它位于 [SqlNetFrameworkInstallDir]\SqlNetFramework 1.0\CodeSmith\Templates\CRUD.cst。
- CRUD 模板的属性显示在属性窗口中。其中三个属性是必需的,其余属性是可选的。
- Table 属性。您需要指定将为其创建 CRUD 操作的数据库表。使用 CodeSmith 附带的“Table Picker”编辑器选择数据库表。
- DbFactoryType 属性。您需要指定将用于创建 SQL 语句的数据库工厂。
- SqlDataStore 属性。您需要指定将存储 SQL 代码的 SQL 存储库。
- CreateDelete、CreateInsert、CreateSelect 和 CreateUpdate 属性用于指定将创建哪些 SQL 语句。默认情况下,所有 SQL 语句都会被创建。
- InsertFields、SelectFields 和 UpdateFields 分别用于指定将在 Insert、Select 和 Update SQL 语句中使用的字段。
- DeleteStatementId、InsertStatementId、SelectStatementId 和 UpdateStatementId 属性用于在 SQL 数据存储中分配标识符。它们的第一个值在模板执行时自动分配。
生成 SQL 代码
现在您将使用 CRUD 模板自动生成 SQL 代码。您将使用 SqlNetFramework C# 演示中附带的 DemoDb.mdb Access 数据库。
- 打开 CodeSmith Studio。
- 打开 CRUD 模板。
- 选择 Table 属性,然后单击… 按钮。“Table Picker”编辑器将显示出来。
- 添加新的数据源。单击数据源下拉列表右侧的... 按钮。
- 将显示“Data Source Manager”对话框。单击 Add 按钮。
- 将显示“Data Source”对话框。按照下表中的说明分配值。
名称 AccessDemoDb 提供者类型 ADOXSchemaProvider 连接字符串 PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE='[YourDirectory]\DemoDb.mdb' - 单击 Test 进行连接测试,然后单击 OK。
- 选择 AccessDemoDb 数据源,然后单击 Close。
- DemoDb 数据库表应该会显示在“Table Picker”编辑器中。
- 选择 Customer 数据库表。单击 Select。
- 您将使用 OleDb 数据库工厂来创建 SQL 语句。将 OleDbFactory 分配给 DbFactoryType 属性。
- 您将使用 XML 存储库来存储 SQL 代码。选择 SqlDataStore 属性,然后单击… 按钮。“SqlDataSource Manager”编辑器将显示出来。
- 单击 Add… 按钮添加新的 SqlDataStore。“Add/Edit SqlDataStore”对话框将显示出来。按照下表中的说明分配值。
名称 DemoDbXml Manager type XmlSqlDataStoreManager Connection settings [SqlNetFrameworkInstallDir]\SqlNetFramework 1.0\Demos\SqlNetFrameworkEvaluationCS\App_Data\DemoDb.xml - 单击 Ok 关闭“Add/Edit SqlDataStore”对话框。
- 选择 DemoDbXml,然后单击“Select”按钮。
- 现在您可以运行 CRUD 模板了。按 F5 运行它。
- 您可以看到属性窗口已刷新。InsertFields、SelectFields 和 UpdateFields 属性包含新值。这些值是从数据库表架构推断出来的。
- DeleteStatementId、InsertStatementId、SelectStatementId 和 UpdateStatementId 属性包含 XML SqlDataStore 分配的标识符。
现在您将使用 DetailsView 控件和 SqlStoreDataSource 控件来显示 Customer 数据库表中的数据并执行操作。我已经创建了位于 SqlNetFramework C# 演示中的 webform,该演示包含在 SqlNetFramework 安装中。
<SqlNetFramework:SqlStoreDataSource ID="dsCustomers" SelectStatementID="12" InsertStatementID="13" UpdateStatementID="14" DeleteStatementID="15" ConnectionID="DemoDb" runat="server" DataSourceMode="DataSet"></SqlNetFramework:SqlStoreDataSource> <asp:DetailsView ID="dvCustomers" DataSourceID="dsCustomers" runat="server" AllowPaging="True" AutoGenerateDeleteButton="True" AutoGenerateEditButton="True" AutoGenerateInsertButton="True" AutoGenerateRows="False" DataKeyNames="CustomerId"> <Fields> <asp:BoundField DataField="CustomerId" HeaderText="CustomerId" InsertVisible="False" ReadOnly="True" SortExpression="CustomerId" /> <asp:BoundField DataField="FirstName" HeaderText="FirstName" SortExpression="FirstName" /> <asp:BoundField DataField="LastName" HeaderText="LastName" SortExpression="LastName" /> </Fields> </asp:DetailsView>
结论
如您所见,SqlNetFramework 减少了您需要编程的代码量。通过使用 SqlNetFramework 和 CodeSmith,您可以自动化 SQL 代码的创建。