仅向Gridview添加唯一数据

时间:2011-02-22 10:56:31

标签: c# asp.net database gridview sqldatasource

我有一张这样的桌子。列 - > (MUSTERI,AVUKAT,HESAP(独特))

我的页面设计如下。

enter image description here

简单地说,第一个下拉列表是MUSTERI,第二个下拉列表是AVUKAT,当我点击EKLE(它意味着添加)按钮时,自动获取HESAP(唯一)并在gridview上显示。

我想要的是,如果任何用户尝试添加他们是相同HESAP的数据,则会发生错误。

例如;我的gridview中有一个数据“2M LOJİSTİJ”“ALİ ORAL”“889”。

有人试图添加像“2MLOJİSTİK”“EMRAARAINÇ”“889”这样的数据,显示错误并且不添加到表格。

我的Add_Click按钮代码是

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();
    }

我的第一次下拉MUSTERI(通过这个领域获得HESAP汽车)

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

        SqlConnection myConnection = new SqlConnection(strConnectionString);
        myConnection.Open();
        string hesapNo = DropDownList1.SelectedItem.Value;

        string query = "select A.HESAP_NO from YAZ..MARDATA.S_TEKLIF A where A.MUS_K_ISIM = '" + hesapNo + "'";

        SqlCommand cmd = new SqlCommand(query, myConnection);

        if (DropDownList1.SelectedValue != "0")
        {
            Add.Enabled = true;
            Label1.Text = cmd.ExecuteScalar().ToString();
        }
        else
        {
            Add.Enabled = false;

        }
        Label1.Visible = false;
        myConnection.Close();
    }

如何阻止已经拥有相同HESAP的插入数据?

1 个答案:

答案 0 :(得分:0)

首先检查HESAP是否存在于#AVUKAT中然后插入新条目。


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.Trim(); 
        string musteriadi = DropDownList1.SelectedItem.Value; 
        string avukat = DropDownList2.SelectedItem.Value; 

        string strsql= "SELECT * FROM AVUKAT WHERE HESAP = " + hesap;
        SqlCommand com = new SqlCommand(strsql, myConnection);
        SqlDataReader dread = com.ExecuteReader(); 
        dread.read();
        if(dread.HasRows)
        {
           myConnection.Close();
           return;
        }

        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(); 
    }