0

我试图引用 DataGrid 的特定列并将所有值放入一个数组中。我没有收到任何错误,但问题是只有数组的第零个位置似乎有一个值,而其他位置为空。Datagrid 中有 4 条记录。我究竟做错了什么

这是我的代码:

   private void button1_Click(object sender, EventArgs e)
     {
        string[] arr = new string[10];

        DataTable getdata = new DataTable();
        foreach (DataGridViewRow row in this.dataGridView1.Rows)
        {
            DataGridViewCell cell = row.Cells[1]; 
            {
                if (cell != null && (cell.Value != null))
                {
                    for (int i = 0; i < dataGridView1.Rows.Count; i++)
                    {
                        arr[i] = cell.Value.ToString();
                    }
                }
            }
        }

        if (arr[0] != null)
        {
            textBox3.Text = arr[0].ToString();//Prints value
        }
        else if (arr[1] != null)//Seems to be null
        {
            textBox2.Text = arr[1].ToString();
        }
    }
4

2 回答 2

1

尝试这个:

private void button1_Click(object sender, EventArgs e)
 {
    string[] arr = new string[10];
    int i =  0;

    DataTable getdata = new DataTable();
    foreach (DataGridViewRow row in this.dataGridView1.Rows)
    {
        DataGridViewCell cell = row.Cells[1]; 
        {
            if (cell != null && (cell.Value != null))
            {
                arr[i] = cell.Value.ToString();
            }
            i++;
        }
    }

希望这可以帮助。- 柯里士

于 2012-06-26T21:20:13.803 回答
1

试试像这样的东西

private void button1_Click(object sender, EventArgs e)
{
        List<String> columnValues = new List<String>

        foreach (DataGridViewRow row in this.dataGridView1.Rows)
        {
            DataGridViewCell cell = row.Cells[1]; 
            {
                if (cell != null && (cell.Value != null))
                {
                   columValues.Add(cell.Value.ToString());
                   if (columnValues.Count == 2)
                   {
                      break;
                   }
                }
            }
        }

        if (columnValues.Count > 0)
        {
          if (columnValues.Count < 2)
          {
            textBox3.Text = columnValues[0];//Prints value
          }
          else 
          {
               textBox2.Text = columnValues[1];
          }
        }
    }

不喜欢数组。超过 11 个非空值的东西会翻倒。不知道那个数据表是干什么用的。如果您只将非空值放入集合中,为什么要检查它们是否为空。String.ToString() 似乎有点毫无意义。

添加了一个中断,因为您只对 2 个非空值感兴趣。并整理了最后一点逻辑,尽管我想不出它背后的推理。

于 2012-06-26T21:22:26.947 回答