我有一個使用列表對象的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