Asp.net 将NULL值从xml插入数据库
如何将XML字符串中的空值插入数据库 当我插入时,DOB字段插入“1900-01-01 00:00:00.000”和性别字段“”。 我想在此列中插入空值。请帮帮我Asp.net 将NULL值从xml插入数据库,asp.net,sql-server,Asp.net,Sql Server,如何将XML字符串中的空值插入数据库 当我插入时,DOB字段插入“1900-01-01 00:00:00.000”和性别字段“”。 我想在此列中插入空值。请帮帮我 <Child> <EnrolmentNo>01113702010</EnrolmentNo> <Name>Ankush</Name> <DOB></DOB> <Email>Anushka@gmail.com</Emai
<Child>
<EnrolmentNo>01113702010</EnrolmentNo>
<Name>Ankush</Name>
<DOB></DOB>
<Email>Anushka@gmail.com</Email>
<Gender></Gender>
<Phone>9990234323, 9452344321</Phone>
<RegistrationDate>2013-11-12T00:00:00</RegistrationDate>
<ValidUpto>2014-12-12T00:00:00</ValidUpto>
</Child>
@Input XML
INSERT INTO KP_StudentsTemp
(
[EnrolmentNo],[SessionId],[BatchId],[SemesterId],
[FirstName],[MiddleName],[LastName],[DOB],[Email],[Gender],[Phone],
[RegistrationDate],[ValidUpto]
)
SELECT (XNodes.value('(EnrolmentNo)[1]','varchar(32)')),
XNodes.value('(Name)[1]','varchar(32)'),
XNodes.value('(DOB)[1]','datetime'),
XNodes.value('(Email)[1]','varchar(256)'),
XNodes.value('(Gender)[1]','char(1)'),
XNodes.value('(Phone)[1]','varchar(64)'),
XNodes.value('(RegistrationDate)[1]','datetime'),
XNodes.value('(ValidUpto)[1]','datetime')
FROM @input.nodes('/Main/Child') AS XTbl(XNodes)
01113702010
安库什
Anushka@gmail.com
9990234323, 9452344321
2013-11-12T00:00:00
2014-12-12T00:00:00
@输入XML
插入KP_StudentsTemp
(
[EnrolmentNo]、[SessionId]、[BatchId]、[SemesterId],
[名字],[中间名],[姓氏],[出生日期],[电子邮件],[性别],[电话],
[注册日期],[有效期]
)
选择(XNodes.value('(EnrolmentNo)[1],'varchar(32)'),
值('(名称)[1]','varchar(32)'),
值('(DOB)[1],'datetime'),
XNodes.value(“(Email)[1]”,“'varchar(256)”,
XNodes.value(‘(性别)[1]’,‘字符(1)’),
XNodes.value(“(Phone)[1]”,“'varchar(64)”,
值('(RegistrationDate)[1],'datetime'),
值('(ValidUpto)[1]','datetime')
从@input.nodes('/Main/Child')作为XTbl(XNodes)
您可以使用NULLIF
函数
@Input XML
INSERT INTO KP_StudentsTemp
(
[EnrolmentNo],[SessionId],[BatchId],[SemesterId],
[FirstName],[MiddleName],[LastName],[DOB],[Email],[Gender],[Phone],
[RegistrationDate],[ValidUpto]
)
SELECT (
XNodes.value('(EnrolmentNo)[1]','varchar(32)')),
XNodes.value('(Name)[1]','varchar(32)'),
NULLIF(XNodes.value('(DOB)[1]','datetime'),'1900-01-01 00:00:00.000'),
XNodes.value('(Email)[1]','varchar(256)'),
NULLIF(XNodes.value('(Gender)[1]','char(1)'),''),
XNodes.value('(Phone)[1]','varchar(64)'),
XNodes.value('(RegistrationDate)[1]','datetime'),
XNodes.value('(ValidUpto)[1]','datetime')
FROM @input.nodes('/Main/Child') AS XTbl(XNodes)