私は今T4テンプレートを学習しています。インターネット上で得られるすべての例は、コード生成のためのテーブルの使用についてです。私は自動化されたUIを生成するためにストアドプロシージャの結果カラムを使用したいですか?または私は同じクエリのビューを作成する必要がありますか?その場合、どのように読書するか?T4テンプレート:ストアドプロシージャテーブルの結果の列を読み取る
ありがとうございます。
私は今T4テンプレートを学習しています。インターネット上で得られるすべての例は、コード生成のためのテーブルの使用についてです。私は自動化されたUIを生成するためにストアドプロシージャの結果カラムを使用したいですか?または私は同じクエリのビューを作成する必要がありますか?その場合、どのように読書するか?T4テンプレート:ストアドプロシージャテーブルの結果の列を読み取る
ありがとうございます。
私は解決策を持って、ここにあなたが実際にさまざまなストアドプロシージャは、多くのを持っているとして、ストアドプロシージャを実行したくない場合は、SP名
<#
'requires: <#@ assembly name="System.Data" #>
dim Server as new Server(".\sqlexpress")
dim database as new Database(server, "xxxx")
dim strSpName as String= "sp_xxxx"
Dim dt as System.Data.DataTable= database.ExecuteWithResults("exec sp_GetEquipment").Tables(0)
dim ctlName as String = "grdEqp"
#>
<telerik:RadGrid ID="grd" runat="server" Skin="Web20" AutoGenerateColumns="false">
<MasterTableView>
<Columns>
<#
For Each column As System.Data.DataColumn In dt.Columns
#><telerik:GridBoundColumn DataField="<#=column.ColumnName #>" HeaderText="<#=column.ColumnName #>"/>
<#Next#>
</Columns>
</MasterTableView>
</telerik:RadGrid>
から直接ラドグリッドを生成する方法であります異なるパラメータが渡された場合、sp_describe_first_result_setシステム・ストアド・プロシージャを使用して、結果セットの列を返すことができます。
あなたは、他の回答のようにそれの構造については、この表を照会することができますが、それはもう少し一般的な だろう/// <summary>
/// Returns table for which stored procedures need to be generated.
/// </summary>
string TableName = "usp_getNominalCode";
string SchemaName = "Financial";
DataTable DataTable
{
get
{
if (_table == null)
{
Server server = new Server(new ServerConnection(new SqlConnection(this.ConnectionString)));
SqlConnectionStringBuilder connectionStringBuilder = new SqlConnectionStringBuilder(this.ConnectionString);
Database database = new Database(server, connectionStringBuilder.InitialCatalog);
DataSet storedProcedureColumns = database.ExecuteWithResults("sp_describe_first_result_set @tsql= " + "'[" + SchemaName + "]" + ".[" + TableName + "]'");
_table = storedProcedureColumns.Tables[0];
}
return _table;
}
}
DataTable _table;