コード例 #1
0
        public static void VerifyReportParameters(Report report, Rdl rdl)
        {
            for (int i = 0; i < rdl.Items.Length; i++)
            {
                if (rdl.ItemsElementName[i].Equals(RdlChildElement.ReportParameters))
                {
                    RdlReportParameters reportParameters = (RdlReportParameters)rdl.Items[i];

                    foreach (RdlReportParameter reportParameter in reportParameters.ReportParameter)
                    {
                        IReportParameter target = report.ReportParameter(reportParameter.Name);

                        if (target == null)
                        {
                            throw new ReportParameterException("XML metadata is missing parameter: " + reportParameter.Name);
                        }

                        for (int j = 0; j < reportParameter.Items.Length; j++)
                        {
                            switch (reportParameter.ItemsElementName[j])
                            {
                            case RdlReportParameterChildElement.DataType:
                                ReportParameterDataType rpdt = (ReportParameterDataType)Enum.Parse(typeof(ReportParameterDataType), reportParameter.Items[j].ToString());
                                DbType dbType = XmlReportFactory.ToDbType(rpdt);
                                if (!target.DbType.Equals(dbType))
                                {
                                    throw new ReportParameterException("XML metadata mismatch (DataType)! Parameter: " + target.Name);
                                }
                                break;
                            }
                        }
                    }
                }
            }
        }
コード例 #2
0
        internal static DbType ToDbType(ReportParameterDataType type)
        {
            DbType result = DbType.Int32;

            switch (type)
            {
            case ReportParameterDataType.Boolean:
                result = DbType.Boolean;
                break;

            case ReportParameterDataType.DateTime:
                result = DbType.DateTime;
                break;

            case ReportParameterDataType.Float:
                result = DbType.Decimal;
                break;

            case ReportParameterDataType.Integer:
                result = DbType.Int32;
                break;

            case ReportParameterDataType.String:
                result = DbType.String;
                break;
            }

            return(result);
        }