当我第二次打开它时,数据阅读器读取了两次卷号& &;当我第三次打开它的时候

本文关键字:两次 第三次 读取 数据 第二次 | 更新日期: 2023-09-27 18:05:32

亲爱的程序员们!

希望你们都很好。我正在开发一所学校的软件。主屏幕上有两个按钮:学生信息列表和;更新学生信息。在点击更新学生信息,它打开屏幕,您可以在其中编辑学生的信息。当我点击组合框选择卷号时。一切都很好。但是当我回到主屏幕&点击Student Info List,打开数据网格视图(包含学生的所有信息)。然后我再次打开更新信息,它显示了两次卷号。重复上述步骤,显示滚动不增加。图片以链接的形式给出。

代码如下:任何帮助将不胜感激。 谢谢

[try
        {
            int i = 0;
            using (SqlConnection sqlCon = new SqlConnection(Form1.connectionString))
            {
                string commandString = "SELECT RollNO  FROM Student1";
                // MessageBox.Show(commandString);
                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                sqlCon.Open();
                SqlDataReader dr = sqlCmd.ExecuteReader();
                while (dr.Read())
                {
                    i = 1;
                    comboBox3.Items.Add(dr'[0']);
                }
                dr.Close();
            }
            if (i == 0)
            {
                MessageBox.Show("Database Error");
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }][2]

当我第二次打开它时,数据阅读器读取了两次卷号& &;当我第三次打开它的时候

实际上每次你填写你的组合框你没有清除以前的项目呼叫我已经修改了你的代码试试这个

try
        {
            int i = 0;
            using (SqlConnection sqlCon = new SqlConnection(Form1.connectionString))
            {
                string commandString = "SELECT RollNO  FROM Student1";
                comboBox3.Items.Clear(); //first clear previous items then refill
                // MessageBox.Show(commandString);
                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                sqlCon.Open();
                SqlDataReader dr = sqlCmd.ExecuteReader();
                while (dr.Read())
                {
                    i = 1;
                    comboBox3.Items.Add(dr[0]);
                }
                dr.Close();
            }
            if (i == 0)
            {
                MessageBox.Show("Database Error");
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }