2017-08-24 7 views
0

私はリストオブジェクトを使用するDataGridを持っています。ユーザーがデータベースに重複した値を入力しないようにしたいと思います。データベースからの読み取り中に重複した値をキャプチャしてメッセージボックスを表示するにはどうすればよいですか?

私のストアドプロシージャは、すでに重複データがデータベースに入るのを防ぎますが、重複した値を入力できないことを説明するメッセージをユーザーに表示したいと思います。以下は

私はストアドプロシージャを経由して値を挿入しています私のコードです:

using (var cn = ConnectionManager<SqlConnection>.GetManager(Database)) 
      using (var cmd = new SqlCommand("Save", cn.Connection)) 
      { 
       cmd.CommandType = CommandType.StoredProcedure; 

       cmd.Parameters.AddWithValue("@TableId", ReadProperty(TableIdProperty)); 
       cmd.Parameters.AddWithValue("@Q1", ReadProperty(Q1Property).ToUpper()); 
       cmd.Parameters.AddWithValue("@Q2", ReadProperty(Q2Property)); 

       using (var dr = new SafeDataReader(cmd.ExecuteReader())) 
       { 
        //Would like to capture duplicates here if a record already exists with same Q1 and Q2 values 
        if (dr.Read()) 
         LoadProperties(dr); 
        else 
         dr.NextResult(); // sproc error happens here 
       } 
      } 
+0

ストアドプロシージャのコードを共有できますか?どのように重複値を防止していますか?重複した値があるとエラーになりますか? –

+0

アプリケーションエラーが発生し、挿入をロールバックします。 – Mihika

+0

エラーが発生しているところにsprocコードを追加しました。 – Mihika

答えて

0

私は右のそれを得た場合は、ユーザーが新しい行を挿入することができ、アプリケーションを持っていて、重複したエントリがないようにしたいです。

これが正しい場合は、ErrorCodeを返すデータベース関数を追加し、コードからSqlCommandを使用してこの関数を呼び出すことができます。

+0

そうですね。彼らは新しい行を入力するときに、私は重複したエントリを防止したい。 SqlCommandで私を助けてください。 – Mihika

+0

実行方法を教えてください。 –

+0

ええ、あなたが推薦するデータベース関数をどのように書くのか分かりませんでした。 – Mihika

関連する問題