如果未从下拉列表中选择任何值,则 UPDATE SQL 命令将向我抛出类型为 的错误Update Statement Conflicts with Foreign Key Constraint
。这是正常的,因为没有选择已知值。
如何处理?
我填充下拉列表的代码:
var titlesData = db.Query("SELECT TitleId, Name FROM Titles ORDER BY Name");
titlesListItems = titlesData.Select(i => new SelectListItem {
Value = i.TitleId.ToString(),
Text = i.Name,
Selected = i.TitleId == providerData.TitleId ? true : false
});
我的代码显示列表:
@Html.DropDownList("titlesCombo","-- Please select --",titlesListItems)
我的 SQL 语句
@"INSERT INTO Providers
(Ref, ProviderTypeId, CompanyName, CompanyTypeId, TitleId, FirstName, LastName)
VALUES (@0,@1,@2,@3,@4,@5,@6)";
db.Execute(updateCommand, refer, providerTypeId, companyName, companyTypeId, titleId, firstName, lastName)
If one of the "id" fields are null, the insert will fail.
How do I exclude the INSERT of those fields when they have a null value ?
我考虑过通过 IF 语句强制表中的“虚拟”ID 值(例如“0”),如果找到该值,则将“已选择”设置为 false,但这是不可能的,因为每个连接表中的主键不能手动设置为“0”(或任何其他值)(自动增量)。
那么解决方案是什么?
测试每个(我有很多)下拉列表框以排除未选择任何值的下拉列表框并构造变量 SQL 语句?那看起来棘手而复杂!