如何将datatable绑定到reportviewer运行时 [英] How to bind datatable to reportviewer runtime
本文介绍了如何将datatable绑定到reportviewer运行时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要使用下面的代码对报告观察者执行绑定数据类型。我没有看到结果显示在 reportviewer 中,下面缺少什么脚本?
// create dataset
DataSet ds = new DataSet(myDataset);
//创建datatable
DataTable dt = new DataTable(myDatatable);
//添加列
dt.Columns.Add(column1,typeof(string));
dt.Columns.Add(column2,typeof(string));
dt.Columns.Add(column3,typeof(string));
//插入数据行
dt.Rows.Add(row1-col1,row1-col2,row1-col3);
dt.Rows.Add(row2-col1,row2-col2,row2-col3);
//将datatable添加到数据集
ds.Tables.Add(dt);
//将datatable绑定到报表查看器
this.reportViewer.Reset();
this.reportViewer.ProcessingMode = ProcessingMode.Local;
this.reportViewer.LocalReport.ReportEmbeddedResource =Test.Report1.rdlc;
this.reportViewer.LocalReport.DataSources.Clear();
this.reportViewer.LocalReport.DataSources.Add(new ReportDataSource(dt.TableName,dt));
this.reportViewer.RefreshReport();
解决方案
如何绑定datatable到reportviewer,
我将在这里分享可能对其他人有用。
- 添加到表单 clsTables类, Report1.rdlc文件
reportViewer1 ,然后点击 reportViewer1
- 在Report1.rdlc上
/ ol>
- li>
- 添加数据集名称:dsBody
数据源:测试
可用数据集< clsTables
- 点击确定
- 右键点击Report1.rdlc选择插入表格< dsBody元素( Column0,Colum1,Column2 )至 Report1.rdlc表。
命名空间测试{
public class clsTables {
// constructor
public clsTables(string col0,string col1,string col2){
this.Column0 = col0;
this.Column1 = col1;
this.Column2 = col2;
}
//属性
public string Column0 {get;组; }
public string Column1 {get;组; }
public string Column2 {get;组; }
}
}
命名空间测试{
public class clsMain {
public void BindToRepprtViewer(){
// create dataset
DataSet ds = new DataSet(myDataset);
//创建datatable
DataTable dt = new DataTable(myDatatable);
//添加列
dt.Columns.Add(column1,typeof(string));
dt.Columns.Add(column2,typeof(string));
dt.Columns.Add(column3,typeof(string));
//插入数据行
dt.Rows.Add(row1-col1,row1-col2,row1-col3);
dt.Rows.Add(row2-col1,row2-col2,row2-col3);
//将datatable添加到数据集
ds.Tables.Add(dt);
//将行保存到rowList
List< clsTables> rowList = new List< clsTables>();
rowList .Clear();
foreach(dt.Rows中的DataRow行){
rList.Add(new clsTables(Convert.ToInt32(row.ItemArray [0]),row.ItemArray [1] .ToString(),row。 ItemArray [2] .ToString()));
}
//把rowList绑定到bs
BindingSource bs = new BindingSource();
bs.DataSource = rowList;
//绑定bs到rds
ReportDataSource rds = new ReportDataSource();
rds.Name =dsBody;
rds.Value = bs;
//将rds绑定到报表查看器
reportViewer1.Reset();
reportViewer1.LocalReport.ReportEmbeddedResource =Test.Report1.rdlc;
reportViewer1.LocalReport.DataSources.Clear();
reportViewer1.LocalReport.DataSources.Add(rds);
reportViewer1.RefreshReport();
}
}
}
I want to do a bind datatable to reportviewer with the code below. I don't see the results appear in the reportviewer, what the lack of script below?
// create dataset
DataSet ds = new DataSet("myDataset");
// create datatable
DataTable dt = new DataTable("myDatatable");
// add columns
dt.Columns.Add("column1", typeof(string));
dt.Columns.Add("column2", typeof(string));
dt.Columns.Add("column3", typeof(string));
// insert data rows
dt.Rows.Add("row1-col1", "row1-col2", "row1-col3");
dt.Rows.Add("row2-col1", "row2-col2", "row2-col3");
// add datatable to dataset
ds.Tables.Add(dt);
// bind datatable to report viewer
this.reportViewer.Reset();
this.reportViewer.ProcessingMode = ProcessingMode.Local;
this.reportViewer.LocalReport.ReportEmbeddedResource = "Test.Report1.rdlc";
this.reportViewer.LocalReport.DataSources.Clear();
this.reportViewer.LocalReport.DataSources.Add(new ReportDataSource(dt.TableName, dt));
this.reportViewer.RefreshReport();
解决方案
I found the answer how to bind datatable to reportviewer, I will shared here may be useful for others.
- Add to form clsTables class, Report1.rdlc file, reportViewer1.
- Then Click on the upper right corner of the reportViewer1, set choose report to Test.Report1.rdlc.
- On Report1.rdlc
- Click New,
- Add dataset name: dsBody Data source: Test Available dataset: clsTables
- Click Ok
- Right click on Report1.rdlc select Insert Table, drag dsBody element(Column0, Colum1, Column2) to Report1.rdlc table.
Namespace Test{
public class clsTables {
// constructor
public clsTables(string col0, string col1, string col2) {
this.Column0= col0;
this.Column1= col1;
this.Column2= col2;
}
// properties
public string Column0{ get; set; }
public string Column1{ get; set; }
public string Column2{ get; set; }
}
}
namespace Test{
public class clsMain{
public void BindToRepprtViewer() {
// create dataset
DataSet ds = new DataSet("myDataset");
// create datatable
DataTable dt = new DataTable("myDatatable");
// add columns
dt.Columns.Add("column1", typeof(string));
dt.Columns.Add("column2", typeof(string));
dt.Columns.Add("column3", typeof(string));
// insert data rows
dt.Rows.Add("row1-col1", "row1-col2", "row1-col3");
dt.Rows.Add("row2-col1", "row2-col2", "row2-col3");
// add datatable to dataset
ds.Tables.Add(dt);
// save rows to rowList
List<clsTables> rowList = new List<clsTables>();
rowList .Clear();
foreach (DataRow row in dt.Rows) {
rList.Add(new clsTables(Convert.ToInt32(row.ItemArray[0]), row.ItemArray[1].ToString(), row.ItemArray[2].ToString()));
}
// binding rowList to bs
BindingSource bs = new BindingSource();
bs.DataSource = rowList;
// binding bs to rds
ReportDataSource rds = new ReportDataSource();
rds.Name = "dsBody";
rds.Value = bs;
// binding rds to report viewer
reportViewer1.Reset();
reportViewer1.LocalReport.ReportEmbeddedResource = "Test.Report1.rdlc";
reportViewer1.LocalReport.DataSources.Clear();
reportViewer1.LocalReport.DataSources.Add(rds);
reportViewer1.RefreshReport();
}
}
}
这篇关于如何将datatable绑定到reportviewer运行时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文