【问题标题】:BLToolKit save null instead of 0BLToolKit 保存 null 而不是 0
【发布时间】:2015-06-22 12:12:09
【问题描述】:

我有一个奇怪的问题,BLToolkit 在我们的数据库中保存 NULL 而不是 0。

Demo to reproduce the bug

如果您查看图像,这是我将保存的值。 (gIdx 代表 GroupIndex)

这是数据库中的结果。如果您查看 GroupIndex 列,我只有 1 和 2。(这也发生在 SortIndex 列)

这是我的存储过程。并且该列只是一个NULL,INT

USE [ASTUSADMINISTRATION]
GO
/****** Object:  StoredProcedure [dbo].[stpr_GridColumnLayout_Update]    Script Date: 2015-06-22 08:08:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[stpr_GridColumnLayout_Update]
    @ID AS [usrID],  
    @Width AS int,
    @Index AS int,
    @IsCellMerged AS [usrBoolean],
    @GroupIndex AS int,
    @SortIndex AS int,
    @SortDirectionType AS int,
    @SummaryItemType AS int,
    @UpdatedDate AS datetime OUTPUT,
    @UpdatedUser AS [usrUsername]
AS
BEGIN
    SET NOCOUNT ON

    SET @UpdatedDate = GETDATE()

    -- Vérifier si c'est un groupe système
UPDATE [dbo].[GridColumnLayout] SET
    [Width] = @Width,
    [Index] = @Index,
    [IsCellMerged] = @IsCellMerged,
    [GroupIndex] = @GroupIndex, 
    [SortIndex] = @SortIndex,
    [SortDirectionType] = @SortDirectionType,
    [SummaryItemType] = @SummaryItemType,
    [UpdatedDate] = @UpdatedDate, 
    [UpdatedUser] = @UpdatedUser
  WHERE [GridColumnLayoutID] = @ID
END

字符串也会出现类似的问题。仅保存 1 个字符。 (more detail here)

【问题讨论】:

  • 请提供UpdateValue类定义
  • @ili UpdateValue 只是一个IList<TEntity>。我更新以包含整个功能。对不起。
  • TEntity 是如何定义的?如果 [Nullable] 属性定义在 property\field 上,则可能会发生这种情况
  • @ili 我找到了问题 BLToolkit 代码,你可以在 Github 上查看我的问题 github.com/igor-tkachev/bltoolkit/issues/369

标签: c# sql-server database stored-procedures bltoolkit


【解决方案1】:

该错误已于 2015 年 7 月 27 日修复

这实际上是 BLToolkit 在使用存储过程插入数据库时​​使用ExecuteForEach 方法时的一个错误。

See the issue on the GitHub project

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多