我需要从 rdlc 文件获取 SQL 查询以在我的数据库上运行,并为 Microsoft.Reporting.WebForms.LocalReport 添加包含查询结果的数据源。
我使用了 here 中的代码处理报告数据。但是
Microsoft.Reporting.WinForms.LocalReport
没有数据集 getter 。
rdlc 文件包含 DataSets 部分中 DataSet 的 DatasetInfo
<DataSets>
<DataSet Name="DataSet1">
<Query>
<DataSourceName>Dataset1</DataSourceName>
<CommandText>/* Local Query */</CommandText>
</Query>
<Fields> Some Fields description here
</Fields>
<rd:DataSetInfo>
<rd:DataSetName>Dataset1</rd:DataSetName>
<rd:SchemaPath>c:\Dataset1.xsd</rd:SchemaPath>
<rd:TableName>bAPCD</rd:TableName>
<rd:TableAdapterFillMethod>Fill</rd:TableAdapterFillMethod>
<rd:TableAdapterGetDataMethod>GetData</rd:TableAdapterGetDataMethod>
<rd:TableAdapterName>bAPCDTableAdapter</rd:TableAdapterName>
</rd:DataSetInfo>
</DataSet>
</DataSets>
.xsd 文件包含我需要的 SQL 查询
<DbSource ConnectionRef="DBConnection (Web.config)" DbObjectName="dbconnect.dbo.bAPCD" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetData" UserSourceName="Fill">
<SelectCommand>
<DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>SELECT * FROM dbo.ttable</CommandText>
<Parameters />
</DbCommand>
</SelectCommand>
</DbSource>
如何在代码中从该文件获取 SQL 查询?
最佳答案
如果你想获取选择sql:
var dataset = new MyDataTable(); //RPTDatasets.MySet.MyDataTable
var adapter = new bAPCDTableAdapter(); //RPTDatasets.MySet.MySet.Designer
string commandText = adapter.Adapter.SelectCommand.CommandText.ToString();
//或更改命令
adapter.Adapter.SelectCommand.CommandText = "SELECT * FROM FOO";
adapter.Fill(dataset.MyTable);
关于asp.net - 从代码中从rdlc文件获取数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31481312/