2010-09-30 26 views
7

Bu işe yaramıyor. SQL veritabanından, sütunun boş değerlere izin vermediği bir özel durum var.ASP.NET'teki bir DataSource parametresi için boş bir dize varsayılan değer nasıl ayarlanır?

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

cevap

8

Sen

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

deneyebilirsiniz Ama bunu varsayılan olduğunu düşünüyorum.

+0

Teşekkür ederiz, varsayılan ayar doğruydu. Şimdi çalışıyor. – Wodzu

0

bu deneyin:

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

İyi şanslar!

+0

Teşekkürler, bunun yerine: e.Command.Parameters ["Name"]. Boş bir dize için value = "", değil mi? Fakat Henk'in çözümü problemim için yeterli. – Wodzu

+0

evet bunu yapabilirdiniz ama boş dizeyi veritabanında saklamak için boş değerler kullanmaya başlamanızı öneririm. neyse bunu çözmek başardı sevindim! – Mouhannad

İlgili konular