I want to select 1 row from DataGridView
and then pass that value to my SQL query where clause as @CwAgencyKey
. Then I will query the database for the data I want to populate my report's textboxes.
string queryString = "SELECT DISTINCT AGENCY_NAME " +
"FROM CW_AGENCY CA WITH(NOLOCK) " +
"INNER JOIN CW_KEYS CK WITH(NOLOCK) ON CK.CW_AGENCY_KEY = CA.CW_AGENCY_KEY " +
"INNER JOIN CW_MAST CM WITH(NOLOCK) ON CM.CW_KEY = CK.CW_KEY " +
"INNER JOIN AGENCY A WITH(NOLOCK) ON A.AGENCY_KEY = CA.PAYEE_KEY " +
"WHERE CA.CW_AGENCY_KEY = @CwAgencyKey";
var dataSet = new DataSet("CheckWriter");
try
{
var dataAdapter = new SqlDataAdapter(queryString, ConnectDB.connectionDB);
dataAdapter.SelectCommand.Parameters.AddWithValue("@CwAgencyKey", cwAgencyKey);
form2.reportViewer1.LocalReport.DataSources.Clear();
DataTable dt = new DataTable();
dataAdapter.Fill(dt);
object agencyName = dt.Rows[0][0];
Microsoft.Reporting.WinForms.ReportDataSource reportDataSource1 = new Microsoft.Reporting.WinForms.ReportDataSource(dt.TableName, dt);
form2.reportViewer1.LocalReport.ReportPath = "../../Report1.rdlc";
form2.reportViewer1.LocalReport.DataSources.Add(reportDataSource1);
ReportParameter payeeReport = new ReportParameter("payeeReport");
payeeReport.Values.Add(agencyName.ToString());
form2.reportViewer1.LocalReport.SetParameters(payeeReport);
form2.reportViewer1.RefreshReport();
}
catch (SqlException ex)
{
MessageBox.Show("SQL Error: " + ex);
}
This code produces an error at form2.reportViewer1.LocalReport.SetParameters(payeeReport);
Microsoft.Reporting.WinForms.LocalProcessingException: 'An error occurred during local report processing.'
Can anyone help with the correct way to populate a report from query?