私がしたことは、フォームで reportViewer を作成するだけで、次のコードがあります。
SqlConnection cn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=G:\I.S\C#\billingSystem\Store.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
private void Form1_Load()
{
runRptViewer();
cn.Open();
}
private void rptGetDataset()
{
DataSet ds = new DataSet();
ds.DataSetName = "dsNewDataSet";
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM NewBill", cn);
ds.GetXmlSchema();
da.Fill(ds);
ds.WriteXmlSchema(@"G:\I.S\Testoooooooo\Testoooooooo\Dataset1.xsd");
ds.WriteXml(@"G:\I.S\Testoooooooo\Testoooooooo\Dataset1.xml");
}
private DataTable getData()
{
DataSet dss = new DataSet();
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM NewBill", cn);
da.Fill(dss);
DataTable dt = dss.Tables["NewBill"];
return dt;
}
private void runRptViewer()
{
this.reportViewer2.Reset();
//this.ReportViewer1.LocalReport.ReportPath = Server.MapPath("Report.rdlc");
this.reportViewer2.LocalReport.ReportPath =(@"G:\I.S\Testoooooooo\Testoooooooo\Report1.rdlc");
ReportDataSource rds = new ReportDataSource("dsNewDataSet_NewBill", getData());
this.reportViewer2.LocalReport.DataSources.Clear();
this.reportViewer2.LocalReport.DataSources.Add(rds);
//this.reportViewer2.DataBind();
this.reportViewer2.LocalReport.Refresh();
}
}
私は2つのreportViewerを持っていますreportViewer1は機能しますが、データベースのディレクトリが変更された場合は機能しません。そのため、別のreportViewerで試して、データベースのディレクトリが変更されても機能するようにしますストリング。
問題は、レポートに何も表示されないことです。コードに問題があると思います:
//this.ReportViewer1.LocalReport.ReportPath = Server.MapPath("Report.rdlc");
これは Windows フォームなので、サーバーはありません。次のように変更します。
this.reportViewer2.LocalReport.ReportPath =(@"G:\I.S\Testoooooooo\Testoooooooo\Report1.rdlc");
そしてこれはうまくいきません:
//this.reportViewer2.DataBind();
この 2 行を理解できません。Dataset1.xsd と Dataset1.xml を作成するという意味ですか、それとも単に編集するという意味ですか。ds.WriteXmlSchema(@"G:\IS\Testoooooooo\Testoooooooo\Dataset1.xsd"); ds.WriteXml(@"G:\IS\Testoooooooo\Testoooooooo\Dataset1.xml"); 可能であれば、すべてのものを作成することから素晴らしいコーディングまでの手順が必要です。