2017-10-19 10 views
1
private void Form1_Load(object sender, EventArgs e) 
    { 
     // TODO: This line of code loads data into the 'DataSet1.sp_GetRent1' table. You can move, or remove it, as needed. 
     this.sp_GetRent1TableAdapter.Fill(this.DataSet1.sp_GetRent1, "@RentNo1", "@AppPath"); 
     //this.GetSPResult(); 
     this.reportViewer1.RefreshReport(); 
    } 

private void button1_Click(object sender, EventArgs e) 
    { 
     DataTable dt = new DataTable(); 
     reportViewer1.Visible = true; 
     reportViewer1.LocalReport.ReportPath = "Report1.rdlc"; 
     reportViewer1.LocalReport.DataSources.Clear(); 
     reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("DataSet1",dt)); 
     GetSPResult(); 
    } 

private DataTable GetSPResult() 
    { 
     DataTable ResultsTable = new DataTable(); 
     SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=RentACar1;Integrated Security=True");// ProviderName = "System.Data.SqlClient"); 
     try 
     { 
      SqlCommand cmd = new SqlCommand("sp_GetRent1",conn); 
      cmd.CommandType = CommandType.StoredProcedure; 
      cmd.Parameters.AddWithValue("@RentNo1", "9905-10-2017"); 
      cmd.Parameters.AddWithValue("@AppPath", @"E:\Rent A Car\RentACar1\RentACar\bin\Debug"); 
      conn.Open(); 
      //cmd.ExecuteNonQuery(); 
      SqlDataAdapter adaptor = new SqlDataAdapter(cmd); 
      adaptor.SelectCommand = cmd; 
      adaptor.Fill(ResultsTable); 
     } 
     catch(Exception ex) 
     { 
      MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); 
     } 
     return ResultsTable; 
    } 

このコードでは、RDLCレポートには何も表示されません。私はdataset1.xsdを開いて、私はSPに同じパラメータを与える場合、私はグリッドで値を取得します。しかし、私はRDLCで価値を得ることができません。2つのパラメータを持つRDLCレポート(ストアドプロシージャ)

+1

なぜでしょうか?レポートに空のテーブルを与え、さらに_another_テーブルにデータを取得するメソッドを_then_呼び出します。 – DonBoitnott

+0

あなたはコードで私を助けることができます –

答えて

0

あなたのbutton1_Clickは次のようになります。DataTableにはGetSPResultから返されたことを

private void button1_Click(object sender, EventArgs e) 
{ 
    DataTable dt = GetSPResult(); 
    reportViewer1.Visible = true; 
    reportViewer1.LocalReport.ReportPath = "Report1.rdlc"; 
    reportViewer1.LocalReport.DataSources.Clear(); 
    reportViewer1.LocalReport.DataSources.Add(new 
    Microsoft.Reporting.WinForms.ReportDataSource("DataSet1", dt)); 
} 

を注意yourtコードのようにレポートしませ新たに作成された空白のテーブルに追加する必要があります。

関連する問題