2010-09-30 15 views
7

Esto no funciona. Tengo una excepción de SQL databse que la columna no permite valores nulos.¿Cómo establecer una cadena vacía como valor predeterminado para un parámetro de DataSource en 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> 

Respuesta

8

Usted podría intentar

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

pero pensé que era por defecto.

+0

Gracias, la configuración predeterminada era verdadera. Ahora funciona. – Wodzu

0

intente esto:

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

Buena suerte!

+0

Gracias, debería ser más bien: e.Command.Parameters ["Name"]. Value = "" para una cadena vacía, ¿verdad? Pero la solución de Henk es suficiente para mi problema. – Wodzu

+0

sí, podría hacerlo, pero le recomiendo que empiece a usar valores nulos para almacenar cadenas vacías en la base de datos. de todos modos estoy contento de que hayas podido resolverlo !! – Mouhannad

Cuestiones relacionadas