我正在写数据库的前端,将选项显示为组合框。我需要能够将空值返回到数据库。在组合框中显示选项时,写入“nulls”到SQL数据库的最佳方式是什么?
我现在有一个解决方案,它涉及到'查询'记录到查询中以填充数据表,然后检测选择和硬编码null
到我的更新语句中,如果这个项目已被选中。
--GetDataByAvailableTechs query
SELECT tblLEMSCredentialsId, TechNumber
FROM tblLEMSCredentials AS aLEMSCreds
UNION ALL
SELECT '99999' AS Expr1, '<NONE>' AS Expr2
。
//populate combo box
BV_LEMSHIPDataSet.tblLEMSCredentialsDataTable dtAvailableTechs = taLEMSCreds.GetDataByAvailableTechs(selectedSerial);
cboTechNumber.DataSource = dtAvailableTechs;
。
//Save back to DB
if (lemsCredsID == 99999)
{
taDevice.UpdateQuery_Restage(null, selectedSerial);
}
else
{
taDevice.UpdateQuery_Restage(lemsCredsID, selectedSerial);
}
任何人都可以提出一个更好的方式来做到这一点吗?我需要使应用程序能够应付另外5个类似的领域,并且不希望创建更多的其他版本。
摹
@twk:我看到了这个逻辑,但它不是很有效。通过铸造“int?lemsCredsID =(int?)cboTechNumber。SelectedValue;“我得到正确的值为null,但args中的条件运算符”(lemsCredsID == null?DBNull.Value:lemsCredsID)“给出”没有明确的转换DBNull到int“?任何想法? – 2009-02-24 14:32:46
好吧,我明白了。 你有两个选择: 1.使用另一个接受System.DBNull作为第一个参数的方法签名 2.发送null,然后在这个方法里把它改成DBNull – twk 2009-02-24 22:20:33