将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 ();
分类:
.NET
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .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 中如何实现缓存的预热?