2010-09-30 30 views
7

Điều này không hoạt động. Tôi đã có một ngoại lệ từ databse SQL mà cột không cho phép null.Làm thế nào để đặt một chuỗi rỗng làm giá trị mặc định cho tham số DataSource trong 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> 

Trả lời

8

Bạn có thể thử

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

Nhưng tôi nghĩ đó là mặc định.

+0

Cảm ơn bạn, cài đặt mặc định là đúng. Bây giờ nó hoạt động. – Wodzu

0

thử điều này:

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

Chúc may mắn!

+0

Cảm ơn, bạn nên thay thế: e.Command.Parameters ["Name"]. Value = "" cho một chuỗi trống, phải không? Nhưng giải pháp của Henk là đủ cho vấn đề của tôi. – Wodzu

+0

có bạn có thể nhưng tôi khuyên bạn nên bắt đầu sử dụng giá trị null để lưu trữ chuỗi rỗng trong cơ sở dữ liệu. anyway im vui mừng bạn quản lý để giải quyết nó !! – Mouhannad

Các vấn đề liên quan