【问题标题】:Catch unique constraint error in the main gridview update在主网格视图更新中捕获唯一约束错误
【发布时间】:2012-05-26 14:15:47
【问题描述】:

我正在使用 gridview 和 SqlDataSource

在数据库中,我在其中一列上设置了唯一约束。

当我使用新值从 gridview 中的一行更改单元格的值但该值已存在于同一列的其他行中时,它会给我错误:

无法在具有唯一索引“IX_tb1”的对象“dbo.tb1”中插入重复的键行。
声明已终止。

我需要向用户显示友好的消息,例如在标签中

错误:值已存在

有没有办法做到这一点?因为我没有使用任何 sql 命令来捕捉东西。

谢谢

【问题讨论】:

    标签: c# asp.net sql


    【解决方案1】:

    看看这个answer。您需要使用 sqldatasource 的事件来处理异常以显示对用户友好的内容。

    【讨论】:

      【解决方案2】:

      如果您使用 c# 编码,则在 catch 块中处理错误并显示如下自定义错误:

      try
      {
        // Statement which can cause an exception.
      }
      catch(Type x)
      {
        // Statements for handling the exception
        //show your custom error by assigning to label or other control
      }
      finally
      {
        //Any cleanup code
      } 
      

      如果您想处理 sql 查询中的错误,请使用如下错误处理方法:

      BEGIN TRY
         SELECT convert(smallint, '2003121')
      END TRY
      BEGIN CATCH
         PRINT 'errno: ' + ltrim(str(error_number()))
         PRINT 'errmsg: ' + error_message()
      END CATCH
      

      【讨论】:

      • 1.正如我所说:我没有使用我能抓住的东西...... 2.我不明白
      猜你喜欢
      • 2010-10-01
      • 1970-01-01
      • 2022-07-05
      • 2018-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-10
      • 2012-06-16
      相关资源
      最近更新 更多