代码之家  ›  专栏  ›  技术社区  ›  Tony_Henrich

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

  •  3
  • Tony_Henrich  · 技术社区  · 14 年前

    我有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 回复  |  直到 14 年前
        1
  •  0
  •   Waleed Eissa    14 年前

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

        2
  •  0
  •   Wade73    13 年前

    我找到了一个链接(我正在使用)到一些代码,我相信这些代码可以满足您的需要- http://www.codeproject.com/KB/database/DetermineSql2005SPParams.aspx

        3
  •  0
  •   John Saunders KB22    13 年前

    这将创造一些东西:

    1. DataSet ,你可以忽略
    2. 一个名为“QueriesTableAdapter”的表适配器。它将包含
    3. 一种具有存储过程名称的方法,它采用适当的参数,并通过命令数组的元素调用存储过程。

    现在,由于命令集合是受保护的,所以您需要做更多的工作。在设计图面上,按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]; }
            }
        }
    }
    

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

        4
  •  0
  •   adam0101    9 年前

    查看我的 SqlSharpener project . 它可以解析SSDT项目中的sql文件 然后您可以调用包含的T4模板来为所有存储过程创建C包装器,或者您也可以根据需要构建自己的T4模板。