Как предотвратить ввод повторяющихся значений в таблицу базы данных sql на asp.net при добавлении новой записи?
Я создал таблицу в базе данных sql с именем CATEGORIES. При добавлении новых записей он принимает дубликаты, которые мне не нужны.
DAL:
public void saveCAT(int id, string catname, bool act)
{
SqlCommand cmd = new SqlCommand("SAVECAT", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@CAT_ID", id);
cmd.Parameters.AddWithValue("@CAT_NAME", catname);
cmd.Parameters.AddWithValue("@CAT_ACTIVE", (act) ? "Y" : "N");
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
BAL:
public void savcat(int id, string catname, bool act )
{
dll.saveCAT(id, catname, act);
}
CS:
protected void btn_savcat_Click(object sender, EventArgs e)
{
if (HiddenField1.Value == "")
{
bll.savcat(0, tb_catname.Text, Convert.ToBoolean(chk_actcat.Checked));
Response.Write("<script>alert('Category Saved Successfully')</script>");
}
else
{
bll.savcat(Convert.ToInt16(HiddenField1.Value),tb_catname.Text, Convert.ToBoolean(chk_actcat.Checked));
Response.Write("<script>alert('Category Updated Successfully')</script>");
}
bindgrid();
}
Stored Procedure:
ALTER PROC [dbo].[SAVECAT]
@CAT_ID int,
@CAT_NAME varchar(20),
@CAT_ACTIVE char(1)
AS
BEGIN
if(@CAT_ID=0)
BEGIN
INSERT INTO CATEGORIES(CAT_NAME) VALUES (@CAT_NAME)
END
ELSE
BEGIN
UPDATE CATEGORIES SET CAT_NAME=@CAT_NAME,CAT_ACTIVE=@CAT_ACTIVE WHERE CAT_ID=@CAT_ID
END
END
Может ли кто-нибудь помочь мне с этим, как избежать ввода повторяющихся значений в таблицу базы данных. Если введено повторяющееся значение, должно появиться сообщение об ошибке.