private DataSet ExecuteStoredProc(SharpQueryProcedure procedure) { SharpQuerySchemaClassCollection tmp = procedure.GetSchemaParameters(); this.sqlParamsCollection = new ParameterCollection(); SqlParameterConverter converter = new SqlParameterConverter(); if (converter.CanConvertFrom(typeof(SharpQuerySchemaClassCollection))) { if (converter.CanConvertTo(null, typeof(ParameterCollection))) { sqlParamsCollection = (ParameterCollection)converter.ConvertTo(null, CultureInfo.InstalledUICulture, tmp, typeof(ParameterCollection)); } } if (sqlParamsCollection.Count > 0) { using (ParameterDialog inputform = new ParameterDialog(sqlParamsCollection)) { if (inputform.ShowDialog() != DialogResult.OK) { return(null); } else { IDbCommand command = this.BuildCommand(); DbDataAdapter adapter = this.BuildAdapter(); DataSet dataSet = ResultPanel.CreateDataSet(); try { SqlDataAccessStrategy.BuildQueryParameters(command, sqlParamsCollection); adapter.SelectCommand = (DbCommand)command; adapter.Fill(dataSet); return(dataSet); } catch (Exception e) { MessageService.ShowError(e.Message); } finally { if (adapter.SelectCommand.Connection.State == ConnectionState.Open) { adapter.SelectCommand.Connection.Close(); } } } } } return(null); }
private DataSet FillGrid() { this.connectionObject = ConnectionObject.CreateInstance(this.model.ReportSettings.ConnectionString, System.Data.Common.DbProviderFactories.GetFactory("System.Data.OleDb")); this.txtSqlString.Text = String.Empty; SqlQueryChecker.Check(model.ReportSettings.CommandType, model.ReportSettings.CommandText); DataSet dataSet = ResultPanel.CreateDataSet(); this.txtSqlString.Text = model.ReportSettings.CommandText; if (model.ReportSettings.CommandType == CommandType.StoredProcedure) { if (reportStructure.SharpQueryProcedure == null) { throw new IllegalQueryException(); } SharpQueryProcedure procedure = reportStructure.SharpQueryProcedure; SharpQuerySchemaClassCollection sc = procedure.GetSchemaParameters(); if ((sc != null) && sc.Count > 0) { dataSet = ExecuteStoredProc(procedure); } else { dataSet = ExecuteStoredProc(); } } // from here we create from an SqlString like "Select...." if (model.ReportSettings.CommandType == CommandType.Text) { this.txtSqlString.Text = model.ReportSettings.CommandText; dataSet = BuildFromSqlString(); } return(dataSet); }