作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在另一篇文章中实现了用户建议的更改,因此解决了能够更新 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/
我是一名优秀的程序员,十分优秀!