私はリストオブジェクトを使用する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
}
}
ストアドプロシージャのコードを共有できますか?どのように重複値を防止していますか?重複した値があるとエラーになりますか? –
アプリケーションエラーが発生し、挿入をロールバックします。 – Mihika
エラーが発生しているところにsprocコードを追加しました。 – Mihika