向datagridview添加行时,除最后一行外不会插入任何值

时间:2012-11-13 05:11:58

标签: c# database datagridview

我面临的问题对我来说似乎很简单,但我不能超越这个心理障碍。

更好地解释我的情况:我正在读取mdf数据库(Northwind)中的值,并将ContactName列传递给类方法,该方法将值拆分为名字和姓氏。然后它将它们传回去,我尝试将它们添加到我创建的正确列下的DataGridView中。

我的问题是,对于这个当前代码,它是为每列添加行,但除了最后一个列之外它们都是空白的,它显示了表列中的最后一个和最后一个名称。

我觉得由于某种原因,显示空白的行可能会被覆盖,但我不确定。我是在正确的轨道上吗?

这是我的代码:

            conn.Open();

        SqlDataReader reader = command.ExecuteReader();

        searchDataGridView.AllowUserToAddRows = true;

        Customer cust = new Customer();

        searchDataGridView.ColumnCount = 2;
        searchDataGridView.Columns[0].Name = "First Name";
        searchDataGridView.Columns[1].Name = "Last Name";

        int index = this.searchDataGridView.Rows.Count;

            while (reader.Read())
            {

                string customerid = reader.GetString(0);
                string contactname = reader.GetString(2);

                cust.NameSplit(contactname);

                this.searchDataGridView.Rows.Add();

                DataGridViewRow r = searchDataGridView.Rows[rowIndex];

                r.Cells["First Name"].Value = cust.FirstName;
                r.Cells["Last Name"].Value = cust.LastName;
            }

虽然这对我来说似乎是满口的,但我希望我能够清楚地解释清楚。如果您需要更多信息,请告诉我,我非常乐意提供。谢谢:))

1 个答案:

答案 0 :(得分:2)

在添加行时,不会更新rowIndex变量。这条线需要修理:

rowIndex = this.searchDataGridView.Rows.Add();