«Строка ввода была не в правильном формате», но SQL выдает результаты на сервере SQL - PullRequest
0 голосов
/ 16 мая 2019

Я использую Dapper, чтобы связать результаты SQL-запроса с моделью IEnumerable, которую я затем буду использовать для заполнения древовидной сетки на странице.Строка SQL передается через службу асинхронного соединения.Я успешно использовал этот метод в других областях приложения, но в этом случае я получаю сообщение об ошибке «входная строка была не в правильном формате».

Я запустил SQL в SQL Server, и он работаетхорошо и дает результаты.Я также прошел проверку на наличие пропущенной запятой или чего-то в этом роде, но, похоже, нет никаких проблем с форматированием.

select
        a.project_id,
        b.ext_workpackage_id,
        b.workpackage_code,
        b.name,
        right(b.workpackage_code,3) [Job],
        b.[Allocated_To],
        convert(integer, b.Duration,2) Duration,
        bs.name status,
        convert(varchar, b.earliest_start_date, 106) earliest_start,
        convert(varchar, b.latest_completion_date,106) latest_completion,
        b.Created_Date[createddate],
        bt.name type,
        bi.name[billing],
        c2.CC_USRCHAR1[accessbilling],
        CASE
            when c2.CC_USRCHAR1=bi.name then '1'
            when c2.CC_USRCHAR1 is null then '0'
            else '-1'

        end[billingmatch],

        [workpackage/@iscomplete] =
                 CASE
                      WHEN bs.completed = 1 THEN 1

                      WHEN bs.completed = 0 THEN 0
                 END
        , (select SUM(hours)/60 from EXVW_TMShours h where  h.WP like b.workpackage_code + '%' collate SQL_Latin1_General_CP1_CI_AS)[Actual]

        --new line to make second duration column equal to sum of child WP durations(not just the sales budget of this WP
        , (select CONVERT(DECIMAL(10,2),SUM(child.Duration)) from EXT_Workpackage child where child.Parent_Workpackage_ID=b.EXT_Workpackage_ID and ext_workpackage_status_id not in (3,13)) [child_duration]

        ,CONVERT(DECIMAL(10,2),x1m.CC_ACTUAL_COST) + CONVERT(DECIMAL(10,2),x1m.CC_COMITT_COST) [xm]
        ,CONVERT(DECIMAL(10,2),x1s.CC_ACTUAL_COST) [xs]

        ,CONVERT(DECIMAL(10,2),b.material_cost) [est_mat]
        ,a.last_update_time[last_update],CONVERT(DECIMAL(10,2),b.scheduleatotal)[scheduleatotal],ct.name[contracttype]
from project a
        join EXT_Workpackage b on a.project_id = b.project_id
        join EXT_Workpackage_Status bs on b.EXT_Workpackage_Status_ID = bs.EXT_Workpackage_Status_ID
        left outer join ext_workpackage_type bt on bt.ext_workpackage_type_id = b.ext_workpackage_type_id
        left join ext_workpackage_billing_type bi on b.billing = bi.ext_workpackage_billing_type_id

        --left join ext_opera_mats_sum m1 on b.Workpackage_Code=m1.FLD_OPERA_WORKPACKAGE and m1.FLD_OPERA_COSTCODE = 'M'
        --left join ext_opera_mats_sum m2 on b.Workpackage_Code= m2.FLD_OPERA_WORKPACKAGE and m2.FLD_OPERA_COSTCODE = 'S'



        --left join ext_access_actuals m1 on b.Workpackage_Code=m1.wp and m1.costcode = 'M'
        --left join ext_access_actuals m2 on b.Workpackage_Code= m2.wp and m2.costcode = 'S'

        left join Project p on a.project_id= p.project_id

        LEFT JOIN [CST_COSTCENTRE] x1m on b.Workpackage_Code + 'M' = p.Project_Code + x1m.cc_code and x1m.cc_copyheader= p.Project_Code

        LEFT JOIN [CST_COSTCENTRE] x1s on b.Workpackage_Code + 'S' = p.Project_Code + x1s.cc_code and x1s.cc_copyheader= p.Project_Code


        LEFT JOIN EXT_workpackage_contract_type ct on b.EXT_Workpackage_Contract_Type_ID= ct.EXT_Workpackage_Contract_Type_ID
        left join CST_COSTCENTRE2 c2 on x1m.CC_primary = c2.CC_PRIMARY_2

        left join ext_workpackage_approvable_projects wpp on a.Project_ID= wpp.project_id


        where a.project_id = 868
        --and b.EXT_Workpackage_Type_ID = @Trade_ID
        and b.Parent_Workpackage_ID is null


        ORDER BY EXT_Workpackage_ID DESC

Так как в SQL Server это работает нормально, я не ожидаю проблем вC # особенно потому, что я успешно использовал этот метод в другом месте приложения.

...