0

我正在使用 gridview 和SqlDataSource.

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

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

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

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

错误:值已存在

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

谢谢

4

2 回答 2

0

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

于 2012-05-26T15:00:23.877 回答
0

如果您在 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
于 2012-05-26T14:22:23.773 回答