【发布时间】:2013-04-28 08:38:13
【问题描述】:
我有这个:
<asp:DropDownList ID="HomeCountry" runat="server"
DataSourceID="CountryListEntityDS"
DataTextField="CountryNameEn"
DataValueField="CountryCode"
AppendDataBoundItems="True"
SelectedValue="<%# Bind('HomeCountry') %>">
<asp:ListItem Text="--Select One--" Value="" />
</asp:DropDownList>
数据源是这样的:
<asp:EntityDataSource ID="CountryListEntityDS" runat="server"
ConnectionString="name=MainDataModelEntityCont"
DefaultContainerName="MainDataModelEntityCont"
EnableFlattening="False"
EntitySetName="Countries">
</asp:EntityDataSource>
我得到了国家和地区的下拉菜单,并且 --- Select One --- 作为第一项正确。一切正常,除非我将具有国家/地区的记录更改为 --- 选择一个 ---(因此没有国家)并按保存。
然后它抛出:
[SqlException (0x80131904): UPDATE 语句与 FOREIGN KEY 约束“FK_Account_CountryList”。
我已在 SQL Server Management Studio 中手动重现此错误,如果我尝试将记录的 Country 字段从有效值更改为“”,则会发生此错误。抛出相同的错误。但是当我把 Null 它工作正常。 DB 约束基本上是说您必须具有有效值或 Null。
所以在我看来,C# 代码并没有导致将 Null 发送到 DB,而是一个空白字符串。
非常感谢任何人的帮助。非常感谢。
【问题讨论】:
-
你的sql查询有问题。查看查询和表字段,特别是外键
标签: c# asp.net data-binding drop-down-menu entitydatasource