如何使用 C# 在数据库中写入 NULL [英] How can I write the NULL in database with C#

查看:120
本文介绍了如何使用 C# 在数据库中写入 NULL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有A表和B表.B表根据A表的变化每天更新.在 A 表中 2 个实体,如:SCD_DEPT(字符串值)和 LEAVE_DATE(日期时间),在 A 表中,SCD_DEPT 和 LEAVE_DATE 的空值看起来为NULL",但在 B 表中,空 SCD_DEPT 值看起来为空.我想清空 SCD_DEPT 值在 B 表中看起来NULL"

I have A table and B table. B table update everyday according to changes from A table. in A table 2 entities like : SCD_DEPT (String Value) and LEAVE_DATE(DateTime) and in A table empty values are looking "NULL" for SCD_DEPT and LEAVE_DATE but in B table empty SCD_DEPT values are looking empty. I want to empty SCD_DEPT values looks "NULL" in B table

这是我代码中的 UPDATE 部分

it's my UPDATE part in my code

var employeequery = $"{UpdateQuery} EMAIL=@EMAIL, GID = @GID, SAP_COMPANY_CODE=@SAP_COMPANY_CODE, FIRST_NAME=@FIRST_NAME, LAST_NAME = @LAST_NAME, COST_CENTER=@COST_CENTER, MANAGER_EMPLOYEE_ID=@MANAGER_EMPLOYEE_ID, SCD_DEPT=@SCD_DEPT, LEAVE_DATE= @LEAVE_DATE, START_DATE=@START_DATE, CONTRACT_TYPE=@CONTRACT_TYPE, MONTHLY_WORKING_DAY=@MONTHLY_WORKING_DAY, STATUS=@STATUS, LAST_UPDATE_TIME=@LAST_UPDATE_TIME  WHERE EMPLOYEE_ID = @EMPLOYEE_ID";
            var command = DataAccess.Instance.CreateCommand(employeequery);
            command.Parameters.AddWithValue("@EMPLOYEE_ID", entity.Id);
            command.Parameters.AddWithValue("@EMAIL", entity.Email);
            command.Parameters.AddWithValue("@GID", entity.Gid);
            command.Parameters.AddWithValue("@SAP_COMPANY_CODE", entity.SapCompanyCode);
            command.Parameters.AddWithValue("@FIRST_NAME", entity.FirstName);
            command.Parameters.AddWithValue("@LAST_NAME", entity.LastName);
            command.Parameters.AddWithValue("@COST_CENTER", entity.CostCenterName);
            command.Parameters.AddWithValue("@MANAGER_EMPLOYEE_ID", entity.ManagerEmployeeID);
            if(entity.ScdDept == "  ")
            {
                command.Parameters.AddWithValue("@SCD_DEPT", DBNull.Value);
            }
            else
            {
                command.Parameters.AddWithValue("@SCD_DEPT", entity.ScdDept);
            }

                command.Parameters.AddWithValue("@LEAVE_DATE", entity.LeaveDate);
            command.Parameters.AddWithValue("@START_DATE", entity.StartDate);
            command.Parameters.AddWithValue("@CONTRACT_TYPE", entity.ContractType);
            command.Parameters.AddWithValue("@MONTHLY_WORKING_DAY", entity.MonthlyWorkingDay);
            command.Parameters.AddWithValue("@STATUS", entity.Status);
            command.Parameters.AddWithValue("@LAST_UPDATE_TIME", entity.LastUpdateTime);

我尝试 if else for SCD_DEPT(字符串值)但它不起作用.我想要更有效和工作的方式.感谢您的所有帮助.

I try if else for SCD_DEPT (string value) but it is not working.I want to more effective and working way. Thank you for all your helps.

推荐答案

我是这样解决这个问题的:

I solved this problem like that:

var employeequery = $"{UpdateQuery} EMAIL=@EMAIL, GID = @GID, SAP_COMPANY_CODE=@SAP_COMPANY_CODE, FIRST_NAME=@FIRST_NAME, LAST_NAME = @LAST_NAME, COST_CENTER=@COST_CENTER, MANAGER_EMPLOYEE_ID=@MANAGER_EMPLOYEE_ID, SCD_DEPT=@SCD_DEPT, LEAVE_DATE= @LEAVE_DATE, START_DATE=@START_DATE, CONTRACT_TYPE=@CONTRACT_TYPE, MONTHLY_WORKING_DAY=@MONTHLY_WORKING_DAY, STATUS=@STATUS, LAST_UPDATE_TIME=@LAST_UPDATE_TIME  WHERE EMPLOYEE_ID = @EMPLOYEE_ID";
            var command = DataAccess.Instance.CreateCommand(employeequery);
            command.Parameters.AddWithValue("@EMPLOYEE_ID", entity.Id);
            command.Parameters.AddWithValue("@EMAIL", entity.Email);
            command.Parameters.AddWithValue("@GID", entity.Gid);
            command.Parameters.AddWithValue("@SAP_COMPANY_CODE", entity.SapCompanyCode);
            command.Parameters.AddWithValue("@FIRST_NAME", entity.FirstName);
            command.Parameters.AddWithValue("@LAST_NAME", entity.LastName);
            command.Parameters.AddWithValue("@COST_CENTER", entity.CostCenterName);
            command.Parameters.AddWithValue("@MANAGER_EMPLOYEE_ID", entity.ManagerEmployeeID);
            if (entity.ScdDept == "") command.Parameters.AddWithValue("@SCD_DEPT", DBNull.Value);
            else command.Parameters.AddWithValue("@SCD_DEPT", entity.ScdDept);
            if (entity.LeaveDate == DateTime.MaxValue) command.Parameters.AddWithValue("@LEAVE_DATE", DBNull.Value);
            else command.Parameters.AddWithValue("@LEAVE_DATE", entity.LeaveDate);
            command.Parameters.AddWithValue("@START_DATE", entity.StartDate);
            command.Parameters.AddWithValue("@CONTRACT_TYPE", entity.ContractType);
            command.Parameters.AddWithValue("@MONTHLY_WORKING_DAY", entity.MonthlyWorkingDay);
            command.Parameters.AddWithValue("@STATUS", entity.Status);
            command.Parameters.AddWithValue("@LAST_UPDATE_TIME", entity.LastUpdateTime);

感谢您的时间.

这篇关于如何使用 C# 在数据库中写入 NULL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆