DBLayer Wizard V 1.0






3.42/5 (22投票s)
2005年10月18日
2分钟阅读

77591

1523
DBLayer Wizard 是一个代码生成器,它使用 ADO.NET 和 SQL Server 2000 在 C# 中生成数据层类。
引言
这是 DBLayer Wizard 的第一个版本。它是一个以 CS 文件格式生成 N 层架构中的数据层的工具。这有助于开发人员节省在每个新项目中编写相同代码的时间。我们试图提供最佳的编码和数据访问模式,以满足速度、易用性、可靠性、鲁棒性和可移植性。
正如我们上面所说,这个工具的主要目标是节省开发人员在使用 .NET 语言的 N 层应用程序中的时间。我们还非常努力地涵盖了许多数据访问方法;为此,我们研究了许多数据层框架,因此我们在这里提供了许多用于数据库操作的方法和选项。
特点
- 创建一个名为
DB
的类,该类包含任何应用程序中的常用数据访问功能,例如执行内联 SQL、执行存储过程和执行事务。 - 为每个表创建一个类,该类执行最常见的操作,例如按主键选择、按外键选择、选择所有记录、插入、更新和删除。
- 创建一个类来执行存储过程。对于每个存储过程,提供返回 (
DataSet
,DataReader
或返回值) 的能力。 - 生成的代码基于模板,因此开发人员可以使用保存和打开自定义模板进行自定义。
- 所有生成的 CS 文件都保存在您选择的文件夹中。
使用 DataLayer wizard 代码生成器
- 定义 SQL Server 信息(服务器名称、身份验证方法、数据库名称)。
- 选择您要为其生成 .NET 类的表。
- 选择您要为其生成方法的存储过程。
- 为表 [
DataSet
或DataReader
或两者兼有] 和存储过程选择返回数据类型。 - 定义将用于生成 .NET 代码的模板。
- 定义代码将生成的文件夹。
从您的应用程序中使用生成的代码
在这里,我们将看到一些如何使用生成的代码的示例。我们正在以 NorthWind 作为示例数据库。这应该作为类开发人员的指南。
- 如何执行内联 SQL
//DBlayer is the namespace of generated code //all classes and method are static method //Execute Common method form the base class DataSet ds=DBLayer.DB.Execute("SELECT * FROM Customers"); //Execute Scalar (Avg,Count,Sum,..) object result=DBLayer.DB.ExecuteScalar("SELECT COUNT(*) FROM Customers"); //Execute Non Query like (Insert,Update,Delete) int AffectedRows=DBLayer.DB.ExecuteNonQuery(insert sql statment);
如您所见,所有方法都是
static
,基本命名空间是DBlayer
。 - 如何插入到表中
您将看到,在插入操作中,我们有三种不同的插入方式。
//Insert bool result= DBLayer.DBTableShippers.Insert("New Tech","123456"); //Insert DataRow DataRow row=DBLayer.DBTableShippers.GetSchema(); row["CompanyName"]="New Tech"; row["Phone"]="123456"; bool result= DBLayer.DBTableShippers.Insert(row); //Insert DataTable DataTable table=DBLayer.DBTableShippers.GetSchemaTable(); DataRow row1=table.NewRow(); row1["CompanyName"]="New Tech"; row1["Phone"]="123456"; table.Rows.Add(row1); DataRow row2=table.NewRow(); row2["CompanyName"]="New Tech"; row2["Phone"]="123456"; table.Rows.Add(row2); bool result= DBLayer.DBTableShippers.Insert(table);
- 如何更新表中的数据
//Update bool result=DBLayer.DBTableShippers.Update(1,"Home","12365"); //Update DataRow DataRow row=DBLayer.DBTableShippers.GetSchema(); row["ShipperID"]=1; row["CompanyName"]="New Tech"; row["Phone"]="123456"; bool result=DBLayer.DBTableShippers.Update(row); //Update Data Table DataTable table=DBLayer.DBTableShippers.GetSchemaTable(); DataRow row1=table.NewRow(); row1["ShipperID"]=1; row1["CompanyName"]="New Tech"; row1["Phone"]="123456"; table.Rows.Add(row1); DataRow row2=table.NewRow(); row2["ShipperID"]=2; row2["CompanyName"]="Ok"; row2["Phone"]="123456"; table.Rows.Add(row2); bool result=DBLayer.DBTableShippers.Update(table);
- 如何从表中删除数据
//Delete All the Rows int DeletedRows=DBLayer.DBTableOrders.DeleteAll(); //Delete By PK bool result=DBLayer.DBTableOrders.DeleteByPK(int.Parse(txtPK.Text)); //Delete By FK bool result=DBLayer.DBTableOrders.DeleteByFK(txtFK.Text);
- 如何从表中选择数据
//Select All Rows DataSet ds= DBLayer.DBTableOrders.SelectAll(); //Select By Primary Key DataSet ds= DBLayer.DBTableOrders.SelectByPK(int.Parse(txtPKds.Text)); //Select By Foreign Key DataSet ds= DBLayer.DBTableOrders.SelectByFK(txtFKds.Text);
- 如何执行事务
//the method takes array of strings which //is the SQL statements of the transaction bool result=DBLayer.DB.ExecuteTransaction(txtSQL.Lines);
数据层框架类和方法的 UML 类图
公共基类
表类