2013-05-01 109 views
2

我不得不使用數據庫表,無論出於何種原因,要求所有條目都具有值(NOT NULL)。並非所有條目都與用戶相關,當通過網絡表單輸入時,它們將保留空白。我正在使用實體框架使用FormView數據綁定。實體框架試圖將空字符串保存爲空數據庫

我遇到的問題是,它沒有爲文本框輸入空白或空白字符串,而是嘗試使用空值。有沒有辦法只輸入一個空字符串來安撫數據庫約束?

我希望我可以在數據庫中更改這些以允許空值,但不幸的是我無法訪問。

下面是來自ASPX一個片段:

<asp:TextBox ID="CustIdTextBox" runat="server" Text='<%# Bind("CustId") %>' /> 

它看起來像實體框架走的是空字符串,並決定將其保存到數據庫中爲NULL。

+0

你能告訴我們你的代碼嗎? – yoozer8 2013-05-01 15:08:14

+0

這是來自aspx文件。還有什麼特別的你想看? – 2013-05-01 15:09:50

+2

http://stackoverflow.com/questions/6548304/ria-ef4-entity-property-mapped-to-not-null-nvarchar-empty-string – Uzzy 2013-05-01 15:10:30

回答

1

那麼我們肯定需要一些代碼,但我猜textbox.text屬性沒有初始化,所以它會給你NULL。只需將其初始化爲空字符串,或者在更新數據庫之前將其替換爲string.empty。

+0

看到代碼後,請確保CustId字段已初始化爲字符串。空的,otherwize默認情況下它將是NULL。 – Jeff 2013-05-01 15:11:01

+0

有道理。有點奇怪,這是如何工作的;你會認爲它會被分配空字符串,而不是NULL。 – 2013-05-01 15:19:01

+0

不是真的,因爲如果你做字符串str;那麼str將爲空。字符串是一個對象,這意味着你需要首先實例化它。 – Jeff 2013-05-01 15:19:52

相關問題