我有一种情况,我正在使用SQLviewSource的detailsview来更新SQL Server数据库中的记录。如何将asp.net NULL值转换为“”(空字符串)
我的问题是未完成的文本字段会在数据库中转换为NULL。这会导致使用无法处理NULL DB值的第三方Web服务的网站出现问题。
有没有办法,如果文本域留空,当更新或插入发生时,数据转换为“”(空白字符串),而不是空值?
我有一种情况,我正在使用SQLviewSource的detailsview来更新SQL Server数据库中的记录。如何将asp.net NULL值转换为“”(空字符串)
我的问题是未完成的文本字段会在数据库中转换为NULL。这会导致使用无法处理NULL DB值的第三方Web服务的网站出现问题。
有没有办法,如果文本域留空,当更新或插入发生时,数据转换为“”(空白字符串),而不是空值?
,当您插入或更新记录,有插入/更新参数的ConvertEmptyStringToNull
财产。将其设置为false,并将该字符串设置为空,如果没有提供给该控件的值。看看下面的例子:
<asp:SqlDataSource ID="SqlDataSource1" runat="server">
<InsertParameters>
<asp:ControlParameter ConvertEmptyStringToNull="false" />
</InsertParameters>
<UpdateParameters>
<asp:ControlParameter ConvertEmptyStringToNull="false" />
</UpdateParameters>
</asp:SqlDataSource>
您可以在数据库表列上设置“”的default value。或者在你的SQL SELECT语句,你可以因为使用SQLDataSource
这样做
SELECT IsNull(ColName,"")
FROM SomeTable
的
我不认为这会奏效。我将不得不为每个返回的列编写IsNull SQL。这是我的SELECT语句:SELECT [subscriberID],[title],[firstName],[surname],[company],[state],[town],[address],[passwordHint],[email],[password] ,[国家],[phoneBH],[PhoneAH],[移动],[dateOfBirth],[笔记],[检查],[guid],[昵称],[头像] FROM [订户] WHERE [subscriberID] = @subscriberID)。 – Jason 2011-05-06 00:05:02
我将不得不为每个返回的列使用IsNull SQL。任何这些列可以是NULL,我需要在更新时将它们转换为空字符串。我必须这样做,因为我没有完全访问所有代码。我只是添加到已经运行的应用程序中。 – Jason 2011-05-06 00:07:11
感谢您的回答。我已经将“ConvertEmptyStringToNull”添加到SQLDataSource,但是如果该字段为空,它仍然会在数据库中插入NULL值。 – Jason 2011-05-06 05:38:49
你把它设置为假?如果仍然进入空然后它的奇怪。 – 2011-05-06 05:40:33
谢谢穆罕默德,你的解决方案确实奏效。我正在将convertemptystringtonull参数添加到详细信息视图中,而不是sqldatasource。 – Jason 2011-05-07 21:48:02