0

グリッドビューとを使用していSqlDataSourceます。

データベースでは、列の1つに一意性制約を設定しました。

グリッドビューの行のセルの値を新しい値に変更しているが、その値が同じ列の他の行にすでに存在している場合、エラーが発生します。

一意のインデックス「IX_tb1」を持つオブジェクト「dbo.tb1」に重複するキー行を挿入できません。
ステートメントは終了されました。

ラベルなどでユーザーにわかりやすいメッセージを表示する必要があります

エラー:値はすでに存在します

これを行う方法はありますか?何かをキャッチするためにSQLコマンドを使用していないためです。

ありがとう

4

2 に答える 2

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 に答える
0

この答えを見てください。例外を処理してユーザーにわかりやすいものを表示するには、sqldatasourceのイベントを使用する必要があります。

于 2012-05-26T15:00:23.877 に答える