我有這樣的:綁定的DropDownList與AppendDataBoundItems不返回NULL
<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>
我得到的下拉與國家和---選擇一個---作爲正確的第一項。一切工作正確除了當我改變一個國家的記錄---選擇一個---(因此沒有一個國家),然後按保存。
然後拋出:
[SQLEXCEPTION(0x80131904):UPDATE語句衝突與 FOREIGN KEY約束 「FK_Account_CountryList」。
我在SQL Server Management Studio中手動重現了這個錯誤,如果我嘗試將記錄的Country字段從有效值更改爲「」,則會發生此錯誤。拋出同樣的錯誤。但是,當我把它的工作正常。數據庫約束基本上是說你必須有一個有效值或空值。
所以在我看來,C#代碼在某種程度上不會導致將空值發送到數據庫,而是一個空白字符串。
任何人都非常感謝。提前謝謝了。
您的sql查詢存在問題。看看查詢和表字段,特別是外鍵 – polin 2013-04-28 08:40:49