(PDF.NET 2.0 工具介绍,3.0 工具使用过程类似)
首先打开SQL-MAP文件生成器(SQL-MAP配置管理管理程序),单击“配置管理”按钮。
然后新建一个SQLMAP文件
在新建文件选项卡,浏览要保存文件的路径,然后输入文件名,如图,此时“确定”按钮由灰色变成可用状态。
单击“数据库类型”选项卡,系统默认的数据库类型是Access,我们不管它,在左边的列表中选择一个SqlServer,单击向右箭头按钮。
选择上图右边的数据库类型,单击“命令组”选项卡,例如当前选择的是SqlServer
在命令组属性里面输入信息,然后单击“添加”按钮,
在单击确定按钮以后,提示“增加成功”,最后“取消”或者关闭本窗口。
修改命令组:
首先在主窗体打开刚才新建的文件,然后单击配置管理按钮;
然后在数据库类型中选择SqlServer,双击选择项,切换到“命令组”选项卡,现选择左边的命令组,然后再右边的命令组属性中输入新的内容,接着单击“修改”按钮,这时候“确定”按钮变成可用状态,最后确定。
打开数据库,我这里选择Northwind数据库的产品表,
然后我们以产品分类为条件,查询记录,这里假设分类号为2 。我们将这条SQL语句先复制出来备用。
将前面复制的SQL语句粘贴到SQL文本框中,我们这里为具体的分类号做一个参数名 @CatagoryID,然后单击“参数生成器”;
在参数生生成器窗口,单击参数分析,在参数信息表中输入参数的数据类型,其它可选。
确定参数设置以后,关闭上一个窗口,自动回到主窗口,SQLMAP脚本被高亮选择,注意生成的参数格式 为 #参数名:参数类型#
切换光标到网格的下一空白行,然后单击保存按钮,确认保存。
最后,打开刚才建立的SqlMap.config文件,查看一下保存的内容:
<?
xml version="1.0" encoding="utf-8"?><!--
PWMIS SqlMap Ver 1.0.2 ,2006-11-22,http://www.pwmis.cn/SqlMap/
Config by SqlMap Builder,Date:2010-6-23
-->
<
SqlMap><
Script Type="Access" Version="2000,2002,2003" /><
Script Type="SqlServer" Version="2000,2002,2003"><
CommandClass Name="测试1" Class="TestClass1" Description="我的第一个测试类"><
Select CommandName="产品分类" CommandType="Text" Method="ProductClass" Description="获取产品分类" ResultClass="DataSet"><![CDATA[
SELECT *
FROM Products
WHERE (CategoryID=#CategoryID:Int32#)
]]></
Select></
CommandClass></
Script></
SqlMap>
到现在为止,我们的第一个SQL-MAP文件配置完成了,接下来就是用代码生成器生成我们的DAL代码了。
打开 Tools 目录的文件 PDFCodeMaker.exe.config,修改代码生成配置信息:
<!--
代码模板路经 --><
add key="CodeTemplatePath" value=""></add><!--
SqlMap 配置文件路径--><
add key="SqlMapConfigFile" value="F:\SqlMap.config"></add><!--
输出文件目录 --><
add key="OutPutPath" value="F:\"></add><!--
根名称空间 --><
add key="RootNameSpace" value="TestDAL"></add><!--
目录代码语言:VB/CSharp --><
add key="CodeLanguage" value="CSharp"></add><!--
是否重新上次生成的代码 --><
add key="ReWrite" value="True"></add>注:还可以配置生成VB.NET代码。
然后运行 Tools目录的程序 PDFCodeMaker.exe ,程序运行结果如下:
大家注意,生成的文件名 就是我们刚才配置文件中的 <CommandClass Name="测试1" 的指定的信息,每一个CommandClass 都对应一个DAL类文件。
下面我们来看看这个类文件的具体内容:
//使用该程序前请先引用程序集:PWMIS.SqlMapper,并且下面定义的名称空间前缀不要使用PWMIS
using
System;using
System.Data;using
PWMIS.SqlMapper;namespace
TestDAL.SqlServerDAL{
///
<summary>///
文件名:TestClass1.cs///
类 名:TestClass1///
版 本:.0///
创建时间:-6-23 23:55:48///
用途描述:我的第一个测试类///
其它信息:该文件由PDF.NET Code Maker 自动生成,修改前请先备份!///
</summary>public
partial class TestClass1: PWMIS.SqlMapper.DBMapper
{
/// <summary>
/// 默认构造函数 /// </summary> public TestClass1(){
Mapper.CommandClassName =
"测试";//CurrentDataBase.DataBaseType=DataBase.enumDataBaseType.SqlServer;
}
/// <summary> /// 获取产品分类 /// </summary> /// <param name="CategoryID"></param> /// <returns></returns> public DataSet ProductClass(Int32 CategoryID )
{
//获取命令信息
Mapper.GetCommandInfo(
"产品分类");//参数赋值,推荐使用该种方式;
Mapper.DataParameters[0].Value = CategoryID;
//参数赋值,使用命名方式;
//Mapper.SetParameterValue("@CategoryID", CategoryID); //执行查询 return CurrentDataBase.DAO.ExecuteDataSet(CurrentDataBase.ConnectionString, Mapper.CommandType, Mapper.CommandText , Mapper.DataParameters);//
}
//End Function
}
//End Class}
//End NameSpace看到了吗?我们的类名称,方法名称,参数名称和类型,方法的返回值,都跟我们的SQL-MAP 配置文件一一对应起来了。
这样,我们可以始终关注于我们的业务,我们的SQL语句,可以不用写一行DAL代码,因此,我们的口号是
让DBA去写(DAL)程序吧!