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

标签 c# mysql asp.net

我在另一篇文章中实现了用户建议的更改,因此解决了能够更新 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/

相关文章:

c# - 使用 DataAnnotation 在 Xamarin 中进行验证

c# - 如何在 .ForEach() 方法中使用 continue 语句

mysql - 为什么 CMS 数据库不使用外键?

php - 使用 Travis CI 触发测试时无法访问 CakePHP fixture db

mysql - 在存储在 session 表中的名为 session_id 的单个连接 ID 上连接 10 个表。这是好/坏的做法吗?

c# - 什么是 protobuf-net SerializeWithLengthPrefix 标记参数?

c# - 在C#.NET中,如何给HTML、CSS等静态文件引用添加版本号?

c# - 显示多对多关系(嵌套 ListViews?)

c# - 让我登录以进行 Windows + 表单登录

jquery - 当 ControlToValidate 在客户端中不可见时禁用RequiredFieldValidator