gpt4 book ai didi

c# - 无法将 NULL 值插入列 'module_desc'

转载 作者:行者123 更新时间:2023-11-29 21:52:24 28 4
gpt4 key购买 nike

我在另一篇文章中实现了用户建议的更改,因此解决了能够更新 ListView 的问题,但我仍然收到以下错误

Cannot insert the value NULL into column 'module_desc', table 'E:\SVN WEBSITE COPIES\CIT\CIT5\APP_DATA\UNIDB.MDF.dbo.modules'; column does not allow nulls. UPDATE fails. The statement has been terminated.

下面是我当前的代码...

asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:UniString %>"
SelectCommand="SELECT [module_id], [module_name], [module_desc], [module_units]
FROM [modules]"

UpdateCommand="UPDATE [modules] SET [module_name]= @Module_Name, [module_desc]=@Module_Description,
[module_units]=@Module_Units WHERE [module_id] = @Module_ID" >

<UpdateParameters>
<asp:Parameter Name="Module_Name" Type="String" />
<asp:Parameter Name="Module_Description" Type="String" />
<asp:Parameter Name="Module_Units" Type="Int32" />
<asp:Parameter Name="Module_ID" Type="Int32" />
</UpdateParameters>


</asp:SqlDataSource>

<asp:ListView ID="ListView1" runat="server" DataSourceID="SqlDataSource1" DataKeyNames="Module_ID">

一切似乎都是完美的代码明智的,所以我不知道如何解决这个问题。

任何帮助都会很棒......

研发

最佳答案

您的错误消息是不言自明的,module_desc 列不允许空值。您要么必须允许列中存在空值,要么传递默认值。我怀疑您的代码中发生的情况是用户输入了空文本,并且默认情况下 SqlDataSource 控件将其转换为 Null。您必须将属性 ConvertEmptyStringToNull 设置为 false,如下所示:-

<UpdateParameters>
<asp:Parameter Name="Module_Name" Type="String" />
<asp:Parameter Name="Module_Description" Type="String" ConvertEmptyStringToNull="false"/>
<asp:Parameter Name="Module_Units" Type="Int32" />
<asp:Parameter Name="Module_ID" Type="Int32" />
</UpdateParameters>

这不会将空文本转换为 Null,并且会更新数据库中的空文本本身,而不是 Null

关于c# - 无法将 NULL 值插入列 'module_desc',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33500752/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com