捕捉在C#中的异常异常

2023-09-03 22:44:41 作者:撒哈拉的夜

我有一个简单的按钮添加

I have a simple button ADD

和ADD_Click code是:

And ADD_Click code is:

protected void Add_Click(object sender, EventArgs e)
    {
        string strConnectionString = ConfigurationManager.ConnectionStrings["SqlServerCstr"].ConnectionString;

        SqlConnection myConnection = new SqlConnection(strConnectionString);
        myConnection.Open();


        string hesap = Label1.Text;
        string musteriadi = DropDownList1.SelectedItem.Value;
        string avukat = DropDownList2.SelectedItem.Value;

        SqlCommand cmd = new SqlCommand("INSERT INTO AVUKAT VALUES (@MUSTERI, @AVUKAT, @HESAP)", myConnection);

        cmd.Parameters.AddWithValue("@HESAP", hesap);
        cmd.Parameters.AddWithValue("@MUSTERI", musteriadi);
        cmd.Parameters.AddWithValue("@AVUKAT", avukat);
        cmd.Connection = myConnection;



        SqlDataReader dr = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
        Response.Redirect(Request.Url.ToString());
        myConnection.Close();
    }

我要的是,如果有人添加具有相同 HESAP (主键)一个数据我想这个词的警报()函数。 已经有一个相同的数据或任何话。无所谓。

What i want is, if anybody adding a data with same HESAP (primary key) i want a alert() function with this words. "Already there is a same data" or any words. Doesn't matter.

我怎样才能做到这一点?

How can i do that?

注意:我想一样的HESAP值获取和捕获错误

NOTE: I want just the same HESAP value getting and catching an error.

推荐答案

试试这个:

protected void Add_Click(object sender, EventArgs e)
{
    string hesap = Label1.Text;
    string musteriadi = DropDownList1.SelectedItem.Value;
    string avukat = DropDownList2.SelectedItem.Value;

    string strConnectionString = ConfigurationManager.ConnectionStrings["SqlServerCstr"].ConnectionString;

    using (SqlConnection myConnection = new SqlConnection(strConnectionString))
    {
        myConnection.Open();

        using (SqlCommand cmd = new SqlCommand("INSERT INTO AVUKAT VALUES (@MUSTERI, @AVUKAT, @HESAP)", myConnection))
        {
            cmd.Parameters.AddWithValue("@HESAP", hesap);
            cmd.Parameters.AddWithValue("@MUSTERI", musteriadi);
            cmd.Parameters.AddWithValue("@AVUKAT", avukat);
            cmd.Connection = myConnection;

            try
            {
                cmd.ExecuteNonQuery();
            }
            catch (SqlException ex)
            {
                if (ex.Number == 2627)
                {
                    // Add a javascript alert to let the user know that the same HESAP value already exists.
                }
                else
                {
                    // Rethrow the exception.
                    throw;
                }
            }
        }
        Response.Redirect(Request.Url.ToString());
        myConnection.Close();
    }
}