Преобразовать пустую строку в ноль в текстовом поле с привязкой к данным - PullRequest
1 голос
/ 30 июня 2011

У меня есть текстовое поле в форме просмотра, которое получает свои данные из linqdatasource, который используется для ввода даты:

<SP:TextBox ID = "StartDate" 
            Type = "Date" 
            Runat = "server" 
            Text = '<%# Bind("StartDate", "{0:yyyy-MM-dd}") %>' />

Работает нормально, кроме случаев, когда StartDate является нулевым значением в базе данных. Тогда текстовое поле StartDate будет пустым, что является правильным, но когда пустое поле сохраняется обратно в базу данных, вместо нулевого значения, которое является неправильным, сохраняется дата 0001-01-01. Как я могу обнаружить этот сценарий и превратить пустую строку в нулевое значение перед ее сохранением?

Ответы [ 2 ]

4 голосов
/ 30 июня 2011

Решение состоит в том, чтобы добавить параметры для столбцов, допускающих значение NULL, и установить для ConvertEmptyStringToNull значение true:

<asp:LinqDataSource ID="LinqDataSource1" runat="server"
    ContextTypeName="NullUpdateRepo.DatabaseLinqDataContext" EnableUpdate="True"
    TableName="SampleTables" OnSelected="OnSelected" OnContextCreated="OnContextCreated">
    <UpdateParameters>
        <asp:Parameter Name="firstname" Type="String" ConvertEmptyStringToNull="true" />
        <asp:Parameter Name="lastname" Type="String" ConvertEmptyStringToNull="true" />
    </UpdateParameters>
</asp:LinqDataSource> 

http://connect.microsoft.com/VisualStudio/feedback/details/296161/linqdatasource-and-null-column-values

0 голосов
/ 30 июня 2011

В качестве значения BackEnd при вставке даты введите:

   CASE WHEN StartDate='0001-01-01' THEN NULL ELSE StartDate END

В таблице будет храниться значение NULL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...