小编Jer*_*yVm的帖子

将null作为SQLParameter DateTime值传递

我有以下查询:

INSERT INTO CWS_FORWARDING_PROFILE
           (TNR_COMPANY_PROFILE,BOL_FORWARD_MAIL,BOL_FORWARD_SMS,BOL_FORWARD_MESSAGES
           ,DT_MO_FROM1,DT_MO_FROM2,DT_MO_FROM3,DT_MO_TO1,DT_MO_TO2,DT_MO_TO3
           ,DT_TU_FROM1,DT_TU_FROM2,DT_TU_FROM3,DT_TU_TO1,DT_TU_TO2,DT_TU_TO3
           ,DT_WE_FROM1,DT_WE_FROM2,DT_WE_FROM3,DT_WE_TO1,DT_WE_TO2,DT_WE_TO3
           ,DT_TH_FROM1,DT_TH_FROM2,DT_TH_FROM3,DT_TH_TO1,DT_TH_TO2,DT_TH_TO3
           ,DT_FR_FROM1,DT_FR_FROM2,DT_FR_FROM3,DT_FR_TO1,DT_FR_TO2,DT_FR_TO3
           ,DT_SA_FROM1,DT_SA_FROM2,DT_SA_FROM3,DT_SA_TO1,DT_SA_TO2,DT_SA_TO3
           ,DT_SU_FROM1,DT_SU_FROM2,DT_SU_FROM3,DT_SU_TO1,DT_SU_TO2,DT_SU_TO3)

            VALUES(@tnrProfile, @forwardMail, @forwardSms, @forwardMessages,
                    @MoFrom1, @MoFrom2, @MoFrom3, @MoTo1, @MoTo2, @MoTo3,
                    @TuFrom1, @TuFrom2, @TuFrom3, @TuTo1, @TuTo2, @TuTo3,
                    @WeFrom1, @WeFrom2, @WeFrom3, @WeTo1, @WeTo2, @WeTo3,
                    @ThFrom1, @ThFrom2, @ThFrom3, @ThTo1, @ThTo2, @ThTo3,
                    @FrFrom1, @FrFrom2, @FrFrom3, @FrTo1, @FrTo2, @FrTo3,
                    @SaFrom1, @SaFrom2, @SaFrom3, @SaTo1, @SaTo2, @SaTo3,
                    @SuFrom1, @SuFrom2, @SuFrom3, @SuTo1, @SuTo2, @SuTo3);
Run Code Online (Sandbox Code Playgroud)

我添加我的DateTime参数如下:

SqlParameter moFrom1Param = new SqlParameter("@MoFrom1", dTOForwarding.MoFrom1);
            moFrom1Param.IsNullable = true;
            moFrom1Param.Direction = ParameterDirection.Input;
            moFrom1Param.SqlDbType = SqlDbType.DateTime;
            cmd.Parameters.Add(moFrom1Param);
Run Code Online (Sandbox Code Playgroud)

当我执行此操作时,只给出某些参数的实际日期时间,其余的都为空.所以要明确的是,从星期一到星期三的所有参数都有一个日期时间值.周四休息,直到周日没有.所以那些传递为null.我收到这样的错误:

The parameterized query '(@tnrProfile …
Run Code Online (Sandbox Code Playgroud)

c# datetime sqlparameter

8
推荐指数
2
解决办法
3万
查看次数

AutoMapper.AutoMapperMappingException

我知道关于这个主题已经被问到了很多问题,但他们都没有为我的问题提供答案。这就是为什么我要创建一个新问题。

我已经在 google 和 here 上寻找答案,并找到了一些改进了我的 AutoMapper 设置的方法。(即只创建一次映射)

我的问题是我有时会遇到异常,有时不会。我完全不知道如何解决它。我已经搜索了一整天,但找不到任何东西。

当我运行 Mapper.AssertConfigurationIsValid(); 它成功。

我尝试添加以下内容:

Mapper.Configuration.AllowNullDestinationValues = true;
Mapper.AllowNullDestinationValues = true;  
Run Code Online (Sandbox Code Playgroud)

而且我仍然收到错误:s

我的设置如下:

在我的 global.asax 文件中,我调用 AutoMapperSetup.SetupAutoMapper()。

protected void Application_Start(object sender, EventArgs e)
    {
        ...
        AutoMapperSetup.SetupAutoMapper();
    }
Run Code Online (Sandbox Code Playgroud)

AutoMapperSetup 类描述如下:(我知道我的静态构造函数正在执行。如果我放置断点,它就会被命中。所以代码确实被执行了)

public static class AutoMapperSetup
{

static AutoMapperSetup()
    {
        #region GetPlanning
        Mapper.CreateMap<GetPlanningResult_v3, FWSGetPlanningResult>()
            .ForSourceMember(x => x.ItemSelection, y => y.Ignore())
            .ForAllMembers(op => op.Condition(x => !x.IsSourceValueNull));
        Mapper.CreateMap<ExecutionResult, FWSExecutionResult>()
            .ForAllMembers(op => op.Condition(x => !x.IsSourceValueNull));
        Mapper.CreateMap<ExecutionResult.Error, FWSExecutionResult.FWSError>()
            .ForAllMembers(op => op.Condition(x => !x.IsSourceValueNull));
        Mapper.CreateMap<ExecutionResult.Warning, FWSExecutionResult.FWSWarning>()
            .ForAllMembers(op => op.Condition(x => …
Run Code Online (Sandbox Code Playgroud)

c# automapper mappingexception

5
推荐指数
1
解决办法
1万
查看次数