2010-09-30 16 views
7

Questo non funziona. Ho un'eccezione dal databse SQL che la colonna non consente i null.Come impostare una stringa vuota come valore predefinito per un parametro DataSource in 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> 

risposta

8

Si potrebbe provare

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

Ma ho pensato che era di default.

+0

Grazie, l'impostazione predefinita era vera. Ora funziona. – Wodzu

0

provare questo:

<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; 
} 

Buona fortuna!

+0

Grazie, dovrebbe essere piuttosto: e.Command.Parameters ["Nome"]. Value = "" per una stringa vuota, giusto? Ma la soluzione di Henk è sufficiente per il mio problema. – Wodzu

+0

sì, ma si consiglia di iniziare a utilizzare valori nulli per memorizzare una stringa vuota nel database. comunque sono contento che tu sia riuscito a risolverlo !! – Mouhannad

Problemi correlati