首页 > 解决方案 > 在 C#.net GridView 中生成重复值

问题描述

我的 C# 代码在 Datagridview 中生成重复值。我的代码看起来像

公共无效按钮1_Click(对象发送者,EventArgs e){

            this.Size = new System.Drawing.Size(818, 608);
            SqlConnection connection = new SqlConnection(connectionstring);
            connection.Open();
            SqlCommand cmd = new SqlCommand("select  CustomerCode, AccountNo, Branch, FirstName, LastName, Sex, MaritialStatus, MobileNo, Email, HomeCity from MasterTable where CustomerCode LIKE '%' + @CusCode AND FirstName LIKE '%' +@FirstName AND AccountNo LIKE '%' +@AccountNo AND Branch LIKE '%' +@Branch", connection);
            dataGridView1.Refresh();
            cmd.Parameters.AddWithValue("@CusCode", textBox1.Text.Trim());
            cmd.Parameters.AddWithValue("@FirstName", txtname.Text.Trim());
            cmd.Parameters.AddWithValue("@AccountNo", txtac.Text.Trim());
            cmd.Parameters.AddWithValue("@Branch", txtbranch.Text.Trim());
            cmd.ExecuteNonQuery();
            DataTable dtt = new DataTable();
            SqlDataAdapter sdap = new SqlDataAdapter(cmd);
            sdap.Fill(dtt);
            dataGridView1.DataSource = dtt;
            sdap.Fill(dtt);
            dataGridView1.DataSource = dtt;          
            connection.Close();

    }

重复值

标签: c#

解决方案


您使用 dt 填充 sdap 两次,这在 DataAdapter 中添加了两次行,并在向其提供 Datasource 时,它​​与双行适配器绑定并显示 Duplicate Rows。更正的代码 -

public void button1_Click(object sender, EventArgs e)
{

        this.Size = new System.Drawing.Size(818, 608);
        SqlConnection connection = new SqlConnection(connectionstring);
        connection.Open();
        SqlCommand cmd = new SqlCommand("select  CustomerCode, AccountNo, Branch, FirstName, LastName, Sex, MaritialStatus, MobileNo, Email, HomeCity from MasterTable where CustomerCode LIKE '%' + @CusCode AND FirstName LIKE '%' +@FirstName AND AccountNo LIKE '%' +@AccountNo AND Branch LIKE '%' +@Branch", connection);
        dataGridView1.Refresh();
        cmd.Parameters.AddWithValue("@CusCode", textBox1.Text.Trim());
        cmd.Parameters.AddWithValue("@FirstName", txtname.Text.Trim());
        cmd.Parameters.AddWithValue("@AccountNo", txtac.Text.Trim());
        cmd.Parameters.AddWithValue("@Branch", txtbranch.Text.Trim());
        cmd.ExecuteNonQuery();
        DataTable dtt = new DataTable();
        SqlDataAdapter sdap = new SqlDataAdapter(cmd);
        sdap.Fill(dtt);
        dataGridView1.DataSource = dtt;
       // sdap.Fill(dtt);    // Making the Rows Double
       // dataGridView1.DataSource = dtt;          
        connection.Close();

}

推荐阅读