У меня есть базовое приложение ASP.NET Web Forms.
Я даю пользователю возможность создавать записи с помощью Веб-формы и обновлять их с помощью DetailsView .
Веб-форма сохраняет пустое поле в Текстовые поля как * пустая строка * g в БД правильно.
DetailsView вместо этого сохраняет их как поля null в БД.
Более того, в событии DetailsView_ItemUpdated , если я проверю e.newvalues и e.oldvalues аргументы, соответствующие поля также равны нулю (исключение), что означает, что данные уже отправлены на сервер как ноль при отправке.
In DetailsView Я использую шаблоны и задаю все параметры обновления в SQLDataSource как ConvertEmptyStringToNull = "false" .
параметр SQLDataSource :
<asp:Parameter Name="SHELF" Type="String" ConvertEmptyStringToNull="false"/>
DetailsView
<asp:DetailsView runat="server"
ID="GvProductDetail" AutoGenerateRows="False" DataKeyNames="rowid"
DataSourceID="ProductDetailData"
OnItemUpdated="gvProductDetail_ItemUpdated">
<asp:TemplateField>
<HeaderTemplate>Stock Shelf </HeaderTemplate>
<ItemTemplate>
<%# Eval("Shelf") %>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" ID="txtShelf" Text='<%# Bind("Shelf") %>' ></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
Возможно ли, что Bind преобразует пустые значения вноль?Я подумал, что этого было достаточно, чтобы установить правило UpdateParameters, чтобы не преобразовывать пустую строку в ноль, но иногда возникает другой сюрприз.кто-нибудь может помочь?