2011-05-05 92 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

相关问题