c#和SQL数据复制

本文关键字:复制 数据 SQL | 更新日期: 2023-09-27 18:04:50

我的代码是从SQL server中提取信息并显示有关汽车的信息。

问题是数据被显示但是被重复了。SQL Data没有重复,但列表框显示相同的数据两次。

代码如下:

private void Show_Click(object sender, EventArgs e)
        {
            SqlConnection conn = new SqlConnection("Data Source=XXXX");
            DataTable dt = new DataTable();
            SqlDataAdapter SDA = new SqlDataAdapter("SELECT Number_Plate,Registered_Keeper,Make,Model,Year_Of_Make,Colour,Engine_Size,Transmission,Fuel_Type FROM datatable WHERE Number_Plate like '%" + label1.Text + "%'", conn);
            SDA.Fill(dt);
            if (SDA.Fill(dt) == 0)
            {
                button5.Visible = false;
                button4.Visible = true;
                label11.Visible = true;
                Show.Visible = false;
                button3.Visible = true;
                Make.Visible = false;
                Model.Visible = false;
                Year_Of_Make.Visible = false;
                Colour.Visible = false;
                Engine_Size.Visible = false;
                Transmission.Visible = false;
                Fuel_Type.Visible = false;
                Registered_Keeper.Visible = false;
                Plate.Visible = false;
                label2.Visible = false;
                label3.Visible = false;
                label4.Visible = false;
                label5.Visible = false;
                label6.Visible = false;
                label7.Visible = false;
                label8.Visible = false;
                label9.Visible = false;
                label12.Visible = false;
            }
            else
            {
                Plate.DataSource = dt;
                Plate.DisplayMember = "Number_Plate";
                Make.DataSource = dt;
                Make.DisplayMember = "Make";
                Model.DataSource = dt;
                Model.DisplayMember = "Model";
                Year_Of_Make.DataSource = dt;
                Year_Of_Make.DisplayMember = "Year_Of_Make";
                Colour.DataSource = dt;
                Colour.DisplayMember = "Colour";
                Engine_Size.DataSource = dt;
                Engine_Size.DisplayMember = "Engine_Size";
                Transmission.DataSource = dt;
                Transmission.DisplayMember = "Transmission";
                Fuel_Type.DataSource = dt;
                Fuel_Type.DisplayMember = "Fuel_Type";
                Registered_Keeper.DataSource = dt;
                Registered_Keeper.DisplayMember = "RegIstered_Keeper";
                Show.Visible = false;
                button3.Visible = true;
            }
        }

注意:当我在SQL中添加数据时,主键丢失了大约20个数字,所以我的数据是20辆车,但是当我添加一个新的主键时,它的主键大约是50。

c#和SQL数据复制

好吧,你做了两次SDA.Fill(dt)。试着去掉if前一行中的那个

...
SqlDataAdapter SDA = ...
if (SDA.Fill(dt) == 0)
...

您调用SDA.Fill(dt);两次,一次在外部,一次在if语句内,

SDA.Fill(dt)被调用了2次,尝试将其更改为dt。数& lt;1