如何在ASP.NET中将空字符串设置为数据源参数的默认值?

7

这个不行。我从SQL数据库中得到了一个异常,说列不允许为空。

<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>
2个回答

9
您可以尝试:
   <asp:Parameter Name="Name"  Type="string" DefaultValue="" 
    ConvertEmptyStringToNull="false" />

但我认为那是默认设置。



1

可以试试这个:

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

祝你好运!


谢谢,应该是这样的:e.Command.Parameters["Name"].value = "" 代表空字符串,对吧?但是Henk的解决方案已经足够解决我的问题了。 - Wodzu
是的,你可以这样做,但我建议你开始使用 null 值来存储数据库中的空字符串。不管怎样,我很高兴你成功解决了它! - Mouhannad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接