C# DataGridView.Rows.ToString()

本文关键字:ToString Rows DataGridView | 更新日期: 2023-09-27 18:12:25

我正试图将每一行的值存储在一个字符串中。

如果我尝试做DataGridView.Rows.ToString(),我会得到

System.Windows.Forms.DataGridViewRowCollection

甚至还没有达到我的需求。

有什么想法吗?

C# DataGridView.Rows.ToString()

我认为您正在寻找基于每行的内容。如果是的话,我建议如下。

  private static IEnumerable<string> GetRowValues(this DataGridView dgv)
  {
     var list = new List<string>(dgv.Rows.Count);
     foreach (DataGridViewRow row in dgv.Rows)
     {
        var sb = new StringBuilder();
        foreach (DataGridViewCell cell in row.Cells)
        {
           sb.Append(cell.ToString());
        }
        list.Add(sb.ToString());
     }
     return list.AsReadOnly();
  }

您需要这样做:

StringBuilder sb = new StringBuilder();
for(int row=0; row<DataGridView.Rows.Count; row++)
{
    for(int col=0; col < DataGridView.Columns.Count; col++)
    {
        sb.Append(DataGridView.Row[row][col].ToString());
    }
}
sb.ToString(); // that will give you the string you desire

编辑我并不是为了检查它是否运行,但它至少应该给你一个起点。此外,这将为您提供所有行。如果只需要一行,请将变量行更改为所需的行号(请记住,它是从零开始的(。

使用for each语句遍历Datagridview中的每一行。

foreach (DataGridViewRow datarow in dataGridView.Rows)
{
    string col1 = datarow.Cells["Col1"].Value.ToString();
    string col2 = datarow.Cells["Col2"].Value.ToString();
    string col3 = datarow.Cells["Col3"].Value.ToString();
}
Foreach(Var row in DataGridView.Rows)
{
    Foreach(Var cell in row.Cells)
    {
        Var str = cell; // this is the string you want
    }
}

类似上面的代码。请原谅在iPad上输入的格式。