我正在使用 gridview 和SqlDataSource
.
在数据库中,我在其中一列上设置了唯一约束。
当我使用新值从gridview中的一行更改单元格的值但该值已存在于同一列的其他行中时,它给了我错误:
无法在具有唯一索引“IX_tb1”的对象“dbo.tb1”中插入重复的键行。
该语句已终止。
我需要向用户显示友好的消息,例如在标签中
错误:值已存在
有没有办法做到这一点?因为我没有使用任何 sql 命令来捕获某些东西。
谢谢
看看这个答案。您需要使用 sqldatasource 的事件来处理异常以显示对用户友好的内容。
如果您在 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