2011-05-05 120 views
2

我有一種情況,我正在使用SQLviewSource的detailsview來更新SQL Server數據庫中的記錄。如何將asp.net NULL值轉換爲「」(空字符串)

我的問題是未完成的文本字段會在數據庫中轉換爲NULL。這會導致使用無法處理NULL DB值的第三方Web服務的網站出現問題。

有沒有辦法,如果文本域留空,當更新或插入發生時,數據轉換爲「」(空白字符串),而不是空值?

回答

5

,當您插入或更新記錄,有插入/更新參數的ConvertEmptyStringToNull財產。將其設置爲false,並將該字符串設置爲空,如果沒有提供給該控件的值。看看下面的例子:

<asp:SqlDataSource ID="SqlDataSource1" runat="server"> 
     <InsertParameters> 
      <asp:ControlParameter ConvertEmptyStringToNull="false" /> 
     </InsertParameters> 
     <UpdateParameters> 
      <asp:ControlParameter ConvertEmptyStringToNull="false" /> 
     </UpdateParameters> 
    </asp:SqlDataSource> 
+0

感謝您的回答。我已經將「ConvertEmptyStringToNull」添加到SQLDataSource,但是如果該字段爲空,它仍然會在數據庫中插入NULL值。 – Jason 2011-05-06 05:38:49

+0

你把它設置爲假?如果仍然進入空然後它的奇怪。 – 2011-05-06 05:40:33

+0

謝謝穆罕默德,你的解決方案確實奏效。我正在將convertemptystringtonull參數添加到詳細信息視圖中,而不是sqldatasource。 – Jason 2011-05-07 21:48:02

0

您可以在數據庫表列上設置「」的default value。或者在你的SQL SELECT語句,你可以因爲使用SQLDataSource這樣做

SELECT IsNull(ColName,"") 
FROM SomeTable 

+0

我不認爲這會奏效。我將不得不爲每個返回的列編寫IsNull SQL。這是我的SELECT語句:SELECT [subscriberID],[title],[firstName],[surname],[company],[state],[town],[address],[passwordHint],[email],[password] ,[國家],[phoneBH],[PhoneAH],[移動],[dateOfBirth],[筆記],[檢查],[gui​​d],[暱稱],[頭像] FROM [訂戶] WHERE [subscriberID] = @subscriberID)。 – Jason 2011-05-06 00:05:02

+0

我將不得不爲每個返回的列使用IsNull SQL。任何這些列可以是NULL,我需要在更新時將它們轉換爲空字符串。我必須這樣做,因爲我沒有完全訪問所有代碼。我只是添加到已經運行的應用程序中。 – Jason 2011-05-06 00:07:11

相關問題