C# DataGridView.Rows.ToString()

发布于 2024-12-12 00:34:31 字数 200 浏览 0 评论 0原文

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

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

System.Windows.Forms.DataGridViewRowCollection

什至不接近我需要的东西。

有什么想法吗?

I am trying to store the values of each of my rows in a string.

If I try to do DataGridView.Rows.ToString() I get

System.Windows.Forms.DataGridViewRowCollection

Not even close to what I need.

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

谁的年少不轻狂 2024-12-19 00:34:31

我认为你正在寻找每行的东西。如果是这样,我建议如下。

  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();
  }

I think you're looking for something on a per row basis. If so, I suggest the following.

  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();
  }
不忘初心 2024-12-19 00:34:31

你需要做这样的事情:

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

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

You need to do something like this:

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

EDIT I didn't run this through to check that it runs but it should at least give you a starting point. Also, this will give you all rows. If you want just one row, change the variable row to the row number you need (keep in mind that it is zero-based).

忆依然 2024-12-19 00:34:31

使用 foreach 语句迭代 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();
}

Use the for each statement to iterate through each row in the 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();
}
朮生 2024-12-19 00:34:31
Foreach(Var row in DataGridView.Rows)
{
    Foreach(Var cell in row.Cells)
    {
        Var str = cell; // this is the string you want
    }
}

就像上面的代码一样。请原谅在 iPad 上输入的格式。

Foreach(Var row in DataGridView.Rows)
{
    Foreach(Var cell in row.Cells)
    {
        Var str = cell; // this is the string you want
    }
}

Something like the code above. Excuse the formatting typed on iPad.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文