Hi everybody,
I am trying to design or develop a report that will be generated by a filter, for instance: by a gender (SELECT * FROM Customer WHERE gender = 'M') and this is using the stored procedure as indicated below:
-------------------------->>>
- set ANSI_NULLS ON
- set QUOTED_INDENTIFIER ON
- go
- ALTER PROCEDURE [dbo].[_FilterByGender]
- @gen nchar(1)
- AS
- BEGIN
- SET NOCOUNT ON;
- select firstname, lastname, gender, race from customer where gender = @gen;
- END
------------------------------------>>>>
Below is my source code which gives me an error message that "Procedure or Function '_FilterByGender' expects parameter '@gen', which was not supplied."
----------------------->>>>>
- void Button11Click(object sender, EventArgs e) //Report Generator
- {
- ReportEngine engine = new ReportEngine ();
- ReportParameters repParam = ReportEngine.LoadParameters (reportPath);
- DbProviderFactory factory = DbProviderFactories.GetFactory
- (css.ProviderName);
- DbConnection conn = factory.CreateConnection ();
- // ReportModel reportModel = ReportEngine.LoadReportModel (reportPath);
- // repParam.SqlParameters[0].DataType = DbType.String;
- // repParam.SqlParameters[0].ParameterDirection = ParameterDirection.Input;
- // repParam.SqlParameters[0].ParameterName = "@gen";
- // repParam.SqlParameters[0].ParameterValue = comboBox1.Text;
- repParam.SqlParameters.Add (new ICSharpCode.Reports.Core.SqlParameter ("@gen",
- DbType.String, comboBox1.Text)); //comboBox1 contains gender values 'M' & 'F'
- BasePager pageBuilder = engine.CreatePageBuilder
- (reportPath, repParam);
- pageBuilder.BuildExportList ();
- engine.PreviewStandardReport (reportPath, repParam);
- }
----------------------------->>>>>
Kindly note that I have also tried commenting the following code:
repParam.SqlParameters.Add (new ICSharpCode.Reports.Core.SqlParameter ("@gen",
DbType.String, comboBox1.Text));
and uncommenting the following one:
// repParam.SqlParameters[0].DataType = DbType.String;
// repParam.SqlParameters[0].ParameterDirection = ParameterDirection.Input;
// repParam.SqlParameters[0].ParameterName = "@gen";
// repParam.SqlParameters[0].ParameterValue = comboBox1.Text;
and when the above code is uncommented, the following error is obtained:
"Index was out of range. Must be non-negative and less than the size of the collection."
Values for ReportProperties on the Report2.srd are as follow
- FileName: C:\Users\Pee-Jay\Documents\SharpDevelop Projects\TestApp\TestApp\Report2.srd
- ReportName: Report2
- ReportType: DataReport
- CommandText: _FilterByGender
- CommandType: StoredProcedure
- ConnectionString: Provider=SQLNCLI10.1;Data Source=;User Id=XXXXXX;Password=XXXXXX;Initial Catalog=TestDB
- DataModel: PullData
- ParameterCollection: <nothing specified>
- SqlParameters: <nothing specified>
--------------------------->>>
I have tried getting this right on my own for more than a month now wiithout any luck. Please help fellows.
Thanks