c# - 如何在 C# 中仅将 datagridview 中的选定行导入 rdlc 报告
问题描述
我有这样的 rdlc 报告;
和这样的datagridview;在另一个包含我的按钮导入的 wpf 窗口上;
我的主要目标是仅将(任何)从 datagridview 中选择的一个行导入到 rdlc 报告中。这样选定的每一行都将显示映射行中选定的值;例如:如果选择第 1 行并单击按钮导入,则所选行列的值将根据 dataset1 到 rdlc 设计表的映射显示;
这是我的 ReportViewer_Loaded 代码;(
DataTable dt = new DataTable("DataSet1");
string cnString = @"Data Source=SQLServer;Initial Catalog=Demo;Integrated Security=True";
string sqlCmd = "SELECT MATH, ENGLISH, SCIENCE FROM Table1";
using (da sqlDataAdap = new SqlDataAdapter(sqlCmd, cnString)) da.Fill(dt);
ReportDataSource reportDataSource = new ReportDataSource() {Name = "DataSet1", Value = dt};
reportViewer.LocalReport.ReportPath = "C:\\Users\\hp\\source\\repos\\SMSKICSO\\SMSKICSO\\myReports\\TermlyReport.rdlc";
reportViewer.LocalReport.DataSources.Add(reportDataSource);
reportViewer.RefreshReport();
这是我的 buttonimport_Click 事件代码;
DataTable dtRep = ((DataView)dataGrid.ItemsSource).Table.Clone();
for (int i = 0; i < dataGrid.SelectedItems.Count; i++)
{
dtRep.ImportRow(((DataRowView)dataGrid.SelectedItems[i]).Row);
}
dtRep.AcceptChanges();
TermlyReportShower window1 = new TermlyReportShower(dtRep);
window1.ShowDialog();
我在 wpf 中工作,这里显示的每个代码都没有错误代码,但我遇到的问题是每次从要显示的数据网格中选择特定行,然后单击按钮导入,datagridview 中的所有三行都显示在 rdlc报告。这不是我想要的,我只想在 rdlc 报告中显示用户选择的一行,请有人帮我实现这个目标我已经尝试了很多代码,但似乎不符合我的期望,请我乞求神童来帮忙。(提前致谢)
解决方案
SelectedRows
将帮助您获取所选行的集合。
为了安全起见,您可以通过以下方式检查您是否选择了行:
if (dataGrid.SelectedRows.Count > 0)
{
//Some code here
}
DataTable
(1)为您的报告创建一个新的:
DataTable dtRep = new DataTable();
foreach (DataGridViewColumn column in dataGrid.Columns)
dtRep.Columns.Add(column.Name, column.CellType);
(2) 将选定的行添加到您的报告中DataTable
:
for (int i = 0; i < dataGrid.SelectedRows.Count; i++)
{
dtRep.Rows.Add();
for (int j = 0; j < dataGrid.Columns.Count; j++)
{
dtRep.Rows[i][j] = dataGrid.SelectedRows[i].Cells[j].Value;
}
}
最后,将(1)和(2)代入//Some code here
推荐阅读
- pointers - 为什么通过原始指针修改可变引用的值不会违反 Rust 的别名规则?
- javascript - onChange 不会在 React 组件中触发
- reactjs - 抽屉在服务器端渲染的第一次渲染中不起作用
- html - 右侧的图像 div 没有出现
- dart - 柯里化函数的类型签名
- javascript - 相同的字符串为 toMatch() 方法 Jasmine 抛出错误
- android - JSONObject 的方法 toString() 始终为 null
- python - 如何从 PyTorch 中的 ResNet 模型中删除最后一个 FC 层?
- python - 函数/方法中的参数是按值传递还是按引用传递?
- java - 如何检查 Map 中的键和值是否匹配