Asp.net DetailsView将文本框空字符串转换为null

Asp.net DetailsView将文本框空字符串转换为null,asp.net,binding,detailsview,string,Asp.net,Binding,Detailsview,String,我有一个基本的ASP.NET Web表单应用程序 我允许用户使用Web表单创建记录,并使用详细视图更新记录 web表单将文本框上的空字段正确地存储为数据库中的*empty strin*g DetailsView将它们存储为数据库中的null字段 此外,如果我检查e.newvalues和e.oldvalues参数,则在DetailsView\u ItemUpdated事件中,相应的字段也为null(引发异常),这意味着数据在提交时已作为null发送到服务器 在详细信息视图中,我使用模板,并将SQL

我有一个基本的ASP.NET Web表单应用程序

我允许用户使用Web表单创建记录,并使用详细视图更新记录

web表单将文本框上的空字段正确地存储为数据库中的*empty strin*g

DetailsView将它们存储为数据库中的null字段

此外,如果我检查e.newvaluese.oldvalues参数,则在DetailsView\u ItemUpdated事件中,相应的字段也为null(引发异常),这意味着数据在提交时已作为null发送到服务器

详细信息视图中,我使用模板,并将SQLDataSource中的所有更新参数设置为ConvertEmptyStringToNull=“false”

SQLDataSource参数

<asp:Parameter Name="SHELF" Type="String" ConvertEmptyStringToNull="false"/>

细节视图

 <asp:DetailsView runat="server" 
                    ID="GvProductDetail" AutoGenerateRows="False" DataKeyNames="rowid" 
                    DataSourceID="ProductDetailData" 
                    OnItemUpdated="gvProductDetail_ItemUpdated">

 <asp:TemplateField>
    <HeaderTemplate>Stock Shelf &nbsp;</HeaderTemplate>
    <ItemTemplate>
       <%# Eval("Shelf") %>
    </ItemTemplate>
    <EditItemTemplate>
       <asp:TextBox runat="server" ID="txtShelf"  Text='<%# Bind("Shelf") %>' ></asp:TextBox>
    </EditItemTemplate>
</asp:TemplateField>

货架

Bind是否可能将空值转换为null?我认为设置UpdateParameters规则不将空字符串转换为null就足够了,但显然还有一些其他的惊喜。有人可以帮忙吗?

我将ConvertEmptyStringToNull=“false”放在每个包含
上,解决了这个问题:


货架

您可能会从相关的post@EmmanuelN,谢谢你的回答。我之前已经看过那篇文章了,但是没有答案
<asp:TemplateField ConvertEmptyStringToNull="false"> 
   <HeaderTemplate>Stock Shelf &nbsp;</HeaderTemplate> 
   <ItemTemplate>&nbsp;<%# Eval("Shelf") %></ItemTemplate> 
   <EditItemTemplate> 
     <asp:TextBox runat="server" ID="txtShelf" Text='<%# Bind("Shelf") %>' >
     </asp:TextBox> 
   </EditItemTemplate> 
</asp:TemplateField>