(首先,我很抱歉我的英语,因为我是一个陌生人而且我不太了解)
我在一个学校项目工作。但我需要在ReportViewer中将DataTable设置为DataSource。首先,用户键入文档的ID,然后单击按钮,该按钮调用在我的数据库中执行select并返回12个字段的类。我创建了一个DataSet,其中包含选择结果的所有字段,并且我已将其选为Report DataSource。但是我需要将select的数据传输到DataSet,因为当我启动应用程序时,Report会出错。这是代码,希望你能帮助我!感谢。
Buttton代码:
SelectDocumento doc = new SelectDocumento();
doc.ImprimirDoc(int.Parse(txtID.Text));
在我的数据库中选择数据的类:
public void ImprimirDoc(int id)
{
string pesquisar = "CALL SP_Imprimir_Documento(" + id + ")";
MySqlConnection con;
con = new MySqlConnection("Persist Security Info=false; server=localhost; database=hospital; uid=root; pwd=");
MySqlDataAdapter adapter = new MySqlDataAdapter(pesquisar, con);
DataTable dt = new DataTable();
dt.TableName = "DataSet1";
con.Open();
adapter.Fill(dt);
ImprimirDocumento imprimir = new ImprimirDocumento(dt);
imprimir.ShowDialog();
}
报告表格代码:
private DataTable proc;
public ImprimirDocumento(DataTable select)
{
InitializeComponent();
proc = select;
}
ConexaoHospital bd = new ConexaoHospital();
SelectDocumento doc = new SelectDocumento();
private void ImprimirDocumento_Load(object sender, EventArgs e)
{
this.rptDocumento.RefreshReport();
this.rptDocumento.LocalReport.DataSources.Clear();
Microsoft.Reporting.WinForms.ReportDataSource rprtDTSource = new Microsoft.Reporting.WinForms.ReportDataSource("DataSet1", proc);
this.rptDocumento.LocalReport.DataSources.Add(rprtDTSource);
this.rptDocumento.RefreshReport();
}
报告显示错误:
答案 0 :(得分:0)
如果某人有类似问题,我的帖子方式是正确的,我的问题是因为我的ReportViewer DataSet名称与我的DataTable不同。我的DataTable名称是“DataSet1”,我的DataSet名称是“Documento”。我更改了“DataSet1”的DataSet名称,它可以正常工作。