Windows XP 平板电脑版嵌入式SQL Server 2000Windows Vista.NET 1.0DBAWindows 2003.NET 1.1Visual Studio 2005Windows 2000Windows XP.NET 2.0SQL Server 2005中级开发Visual StudioSQL ServerWindows.NETVisual BasicC#
适用于 C# 和 VB.NET 的 DAL 类和 Transact-SQL 生成器






4.47/5 (26投票s)
自动生成与 SQL 数据库工作所需的类和存储过程
引言
此程序将帮助您编写必要的代码,用于执行应用程序数据层(Web 和 Windows 应用程序)的基本操作。此程序的功能是创建一个 DAL 类,以便轻松选择、操作和删除数据库记录。结果是数据库中每个表的简单类。结构在下面的示意图中描述。
背景

Using the Code
类结构
- 属性
Insert
方法Update
方法Delete
方法Select
方法
描述
-
这些生成的属性指示表的每个字段。您可以使用它们在应用程序中
get
或set
值private string ConnectionString; public City(string ConnStr) { ConnectionString = ConnStr; } private string m_Code; public string Code { get { return m_Code; } set { m_Code = value; } } private string m_Title; public string Title { get { return m_Title; } set { m_Title = value; } } private string m_Province_Code; public string Province_Code { get { return m_Province_Code; } set { m_Province_Code = value; } }
-
此方法使用生成的存储过程将记录
Insert
到数据库中。它将每个字段的给定值传递给该存储过程public void Insert(string Code , string Title , string Province_Code) { SqlConnection conn = new SqlConnection(ConnectionString); SqlCommand cmd = new SqlCommand("Insert_City", conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue(@Code ,Code ); cmd.Parameters.AddWithValue(@Title ,Title ); cmd.Parameters.AddWithValue(@Province_Code ,Province_Code ); try { conn.Open(); cmd.ExecuteNonQuery(); } catch {} finally { if (conn.State==ConnectionState.Open) { conn.Close(); } conn.Dispose(); cmd.Dispose(); } }
您还可以使用
Insert
方法的第二个重载,以使用当前指定的属性插入记录。 -
Update
方法使用生成的存储过程操作数据库中的记录。与上述类似,此方法使用给定的值调用正确的存储过程public void Update(string Code , string Title , string Province_Code) { SqlConnection conn = new SqlConnection(ConnectionString); SqlCommand cmd = new SqlCommand("Update_City", conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue(@Code ,Code ); cmd.Parameters.AddWithValue(@Title ,Title ); cmd.Parameters.AddWithValue(@Province_Code ,Province_Code ); try { conn.Open(); cmd.ExecuteNonQuery(); } catch {} finally { if (conn.State==ConnectionState.Open) { conn.Close(); } conn.Dispose(); cmd.Dispose(); } }
-
此方法使用生成的存储过程从数据库中删除记录。它获取键字段的值,并使用该值调用存储过程
public void Delete(string ID) { SqlConnection conn = new SqlConnection(ConnectionString); SqlCommand cmd = new SqlCommand("Delete_City", conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue(@ID,ID); try { conn.Open(); cmd.ExecuteNonQuery(); } catch {} finally { if (conn.State==ConnectionState.Open) { conn.Close(); } conn.Dispose(); cmd.Dispose(); } }
-
使用此方法从表中选择一个记录集,以便以后在应用程序中使用。此方法使用生成的存储过程返回一个
dataset
对象private DataSet Select() { SqlConnection conn = new SqlConnection(ConnectionString); SqlDataAdapter cmd = new SqlDataAdapter("Select_City", conn); DataSet dts = new DataSet(); try { conn.Open(); cmd.Fill(dts); return dts; } catch { return null; } finally { if (conn.State==ConnectionState.Open) { conn.Close(); } conn.Dispose(); cmd.Dispose(); } }
SQL 事务
此程序可以生成 transact-SQL 以实现“胖服务器和瘦客户端”的优秀方法。以下是我们要讨论的生成的代码
-
Insert
CREATE PROCEDURE [insert_City] ( @Code [int], @Title [nvarchar](50), @Province_Code [int] ) AS INSERT INTO City ( Code, Title, Province_Code ) VALUES ( @Code, @Title, @Province_Code )
-
更新
CREATE PROCEDURE [update_City] ( @Code [int], @Title [nvarchar](50), @Province_Code [int] ) AS UPDATE City SET Code = @Code, Title = @Title, Province_Code = @Province_Code WHERE ( ID=@ID )
-
删除
CREATE PROCEDURE [delete_City] (@ID [int]) AS DELETE [City] WHERE ([ID] = @ID)
-
Select
CREATE PROCEDURE [Select_City] AS SELECT [ID], [Code], [Title], (Select Title FROM Province WHERE Code=Province_Code) as Province FROM City
应用程序手册

运行程序后,您必须在登录表单中选择目标数据库以生成所需的存储过程。
登录后,您会看到如上图所示的主窗体。

左侧区域
- 数据库结构包含所有表及其字段。您可以右键单击每个表,然后从上下文菜单中选择所需的项以查看 DAL 类或相关的存储过程。
内容区域
- 您在此窗口中看到生成的类。要在以后使用它,您应该使用工具栏将内容保存在一个 *.cs 文件中。
- 您在此窗口中看到用于创建存储过程的生成的 transact-SQL 代码。您可以立即解析或执行它们,或者保存它们以供以后使用。
右侧区域
- 您可以查看在左侧区域中选择的字段的属性。