как предотвратить ввод повторяющихся значений в таблицу базы данных sql в asp.net - PullRequest
0 голосов
/ 29 апреля 2019

Как предотвратить ввод повторяющихся значений в таблицу базы данных 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

Может ли кто-нибудь помочь мне с этим, как избежать ввода повторяющихся значений в таблицу базы данных. Если введено повторяющееся значение, должно появиться сообщение об ошибке.

1 Ответ

0 голосов
/ 29 апреля 2019

Добавление этого условия при вставке может вам помочь.

IF NOT EXIST (SELECT CAT_NAME FROM CATEGORIES WHERE LOWER(CAT_NAME)= LOWER(@CAT_NAME)) BEGIN INSERT INTO CATEGORIES(CAT_NAME) VALUES (@CAT_NAME) END

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...