2017-06-05 70 views
0

我有一個水晶報表,其中我以編程方式設置數據源和參數,但它不工作。我沒有得到所需的輸出。以編程方式傳遞參數並在水晶報表中顯示

這是輸出,當我告訴所有

enter image description here

但是,當我向它傳遞參數,它說明不了什麼。 我通過調試數據被過濾,但它沒有顯示在我的水晶報表查看器中檢查DataTable

這是當我將參數傳遞給它時得到的。 enter image description here

這裏是我的代碼:

private void button1_Click(object sender, EventArgs e) 
{ 
    con.Open(); 
    DataTable table = new DataTable(); 
    DataSet DataSet2 = new DataSet(); 
    SqlCommand cmd = new SqlCommand("Select * from personal_data WHERE class = '" + textBox1.Text.ToString()+"'", con); 

    table.Load(cmd.ExecuteReader()); 

    DataSet2.DataSetName = "dt"; 
    DataSet2.AcceptChanges(); 

    DataSet2.Tables.Add(table); 
    ad.SelectCommand=cmd; 
    ad.Fill(DataSet2,"personal_table"); 


    ParameterFields paramFields = new ParameterFields(); 
    // ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue(); 

    ParameterField paramField = new ParameterField(); 
    ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue(); 
    paramField.Name = @"class"; 
    paramDiscreteValue.Value = textBox1.Text.ToString(); 
    paramField.CurrentValues.Add(paramDiscreteValue); 
    paramFields.Add(paramField); 

    reportDocument.Load(@"C:\Users\Administrator\Documents\Visual Studio 2010\Projects\CrudStudent\Crud\CrystalReport1.rpt"); 
    crystalReportViewer1.ParameterFieldInfo = paramFields; 
    reportDocument.SetDataSource(DataSet2); 
    crystalReportViewer1.ReportSource = reportDocument; 
    con.Close(); 
} 
+0

您是否已經在Crystal報表中創建了參數名稱「class」? –

+0

是的,我已經創建它了 –

回答

0

傳遞參數是這樣的:

CRPT.SetParameterValue("parameterName", parameterValue); 

有關詳細信息,請參閱本link