2010-09-30 8 views
7

To nie działa. Mam wyjątek od bazy danych SQL, która nie zezwala na wartości null.Jak ustawić pusty ciąg jako wartość domyślną dla parametru DataSource w ASP.NET?

<asp:SqlDataSource ID="MyDataSOurcet" runat="server" 
     ConnectionString="<%$ ConnectionStrings:MyConnectionString %>" 
     InsertCommand="INSERT INTO MyTable(Name) VALUES (@Name) WHERE NameID = 1" 
     <InsertParameters> 
      <asp:Parameter Name="Name" Type="String" DefaultValue=""/> 
     </InsertParameters> 
    </asp:SqlDataSource> 

Odpowiedz

8

można spróbować

<asp:Parameter Name="Name" Type="string" DefaultValue="" 
    ConvertEmptyStringToNull="false" /> 

Ale myślałem, że był domyślnym.

+0

Dziękuję, domyślne ustawienie było prawdziwe. Teraz działa. – Wodzu

0

spróbuj tego:

<asp:SqlDataSource ID="MyDataSOurcet" runat="server" OnInserting="MyDataSOurcetInserting" ... > 

//cs 
protected void MyDataSOurcetInserting(object sender, SqlDataSourceCommandEventArgs e) 
{ 
    //check if nothing has been inserted then 
    e.Command.Parameters["Name"].value = DBNull.Value; 
} 

Powodzenia!

+0

Dzięki, powinno to być raczej: e.Command.Parameters ["Name"]. Value = "" dla pustego ciągu znaków, prawda? Ale rozwiązanie Henk jest wystarczające dla mojego problemu. – Wodzu

+0

Tak, ale możesz zalecić, aby zacząć używać wartości null do przechowywania pusty ciąg w bazie danych. tak czy inaczej jestem zadowolony, że udało ci się go rozwiązać !! – Mouhannad

Powiązane problemy