代码生成器从存储过程输入创建ADO.NET SqlParemeter数组?

时间:2010-10-07 22:54:29

标签: c# .net ado.net code-generation

我有SQL Server存储过程,它有几个输入。我想节省手动创建C#ADO.NET sqlParameter数组的时间,如

sqlParameter[] sqlParameters = 
                { new SqlParameter("customerID", SqlDbType.Int, 4, ParameterDirection.Input, false, 0, 0, string.Empty, DataRowVersion.Default, custID) .......

任何可以使用此代码生成器和可以执行此操作的模板吗?如果您提到代码生成器,请提及哪个模板。与CodeSmith中的哪一个相同。

4 个答案:

答案 0 :(得分:0)

如果没有大量存储过程,可以在Visual Studio中编写宏来生成代码(例如,请参阅this)。实际上,根据你编写宏的方式,它也可以处理大量的数据。

如果您不需要手动制作DAL,那么您可能应该考虑使用ORM(实体框架,LINQ to SQL等)来为您生成代码。

答案 1 :(得分:0)

我找到了一些链接(我正在使用),我相信它会做你想做的一些代码 - http://www.codeproject.com/KB/database/DetermineSql2005SPParams.aspx

答案 2 :(得分:0)

使用“添加新项”创建数据集。然后,从服务器资源管理器中,将存储过程拖到设计图面上。

这将创造一些东西:

  1. A DataSet,您可以忽略
  2. 名为“QueriesTableAdapter”的表适配器。它将包含
  3. 受保护的命令数组,包含完整的参数列表
  4. 一个带有存储过程名称的方法,它接受适当的参数,并通过命令数组的元素调用存储过程。
  5. 现在,由于命令集受到保护,您需要做更多的工作。在设计图面上,按F7(查看代码)。这将创建一个DataSet1.cs文件。删除内容并添加以下内容:

    using System.Data.SqlClient;
    
    namespace WebApplication.Data.DataSet1TableAdapters
    {
        public partial class QueriesTableAdapter
        {
            public SqlCommand aspnet_Membership_CreateUser_Command
            {
                get { return (SqlCommand) CommandCollection[0]; }
            }
        }
    }
    

    (我打开了一个Web应用程序,它使用的是标准的ASP.NET数据库,因此这是示例中的存储过程)

    这将允许您的代码访问QueriesTableAdapter.aspnet_Membership_CreateUser_Command.Parameters

答案 3 :(得分:0)

查看我的SqlSharpener project。它可以在设计时解析SSDT项目中的sql文件,然后你可以调用一个包含的T4模板为你的所有存储过程创建C#包装器,或者你可以构建自己的T4模板想。