将dataGridView数据转成DataTable

 

1.有数据绑定时___获取DataGridView选中行数据

  #region  获取dataGridView1选中行数据
            DataTable _dataTable = (dataGridView1.DataSource as DataTable).Clone();
            for (int i = 0 ; i < dataGridView1.SelectedRows.Count ; i++)
            {
                DataRow dr = (dataGridView1.SelectedRows[i].DataBoundItem as DataRowView).Row;
                _dataTable.Rows.Add(dr.ItemArray);
            }
 #endregion

2.无数据绑定时

复制代码
public DataTable GetDgvToTable(DataGridView dgv)
        {
            DataTable dt = new DataTable();
 
            // 列强制转换
            for (int count = 0; count < dgv.Columns.Count; count++)
            {
                DataColumn dc = new DataColumn(dgv.Columns[count].Name.ToString());
                dt.Columns.Add(dc);
            }
 
            // 循环行
            for (int count = 0; count < dgv.Rows.Count; count++)
            {
                DataRow dr = dt.NewRow();
                for (int countsub = 0; countsub < dgv.Columns.Count; countsub++)
                {
                    dr[countsub] = Convert.ToString(dgv.Rows[count].Cells[countsub].Value);
                }
                dt.Rows.Add(dr);
            }
            return dt;
      }
复制代码

 

3.获取某列值( string[]  )

  string[] str = new string[dataGridView1.Rows.Count];
            for (int j ; j < dataGridView1.Rows.Count ; j++)
            {
                if (dataGridView1.Rows[j].Selected == true)
                {
                    str[j] = dataGridView1.Rows[j].Cells[1].Value.ToString();
                }
            }

 

 

 

附: DataGridView的几个基本操作:

1、获得某个(指定的)单元格的值:
  dataGridView1.Row[i].Cells[j].Value;
2、获得选中的总行数:
  dataGridView1.SelectedRows.Count;
3、获得当前选中行的索引:
  dataGridView1.CurrentRow.Index;
4、获得当前选中单元格的值:
  dataGridView1.CurrentCell.Value;

5、获取选中行的某个数据
  int a = dataGridView1.SelectedRows.Index;
  dataGridView1.Rows[a].Cells[4].Value;

6、获取当前行的某个数据

  int a=dataGridView1.CurrentRow.Index;
  string str=dataGridView1.Row[a].Cells[“strName”].Value.Tostring();

7、获得某个(指定的)单元格的值

   dataGridView1.Row[i].Cells[j].Value;

8、 取消\清空当前选择当前行某列内容

  DataGridView1.SelectedCells(0).Value.ToString();  
  DataGridView1.Rows(e.RowIndex).Cells(2).Value.ToString (); 
 

 

posted @   余路还要走多久  阅读(487)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示