一、DataGridView数据转成DataTable

1.已绑定过数据源:
DataTable dt = (dataGridView1.DataSource as DataTable)

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

二、

1.刷新:重新绑定
2.清空:绑定null

3、 dataGridView1.ColumnHeadersDefaultCellStyle.WrapMode = DataGridViewTriState.False; 第一列隐藏

dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; 行选中模式

4、动态绑定列名
foreach (DataColumn dataColumn in AppDataSet.Tables[0].Columns)
{
DataColumnSrv dataColumnSrv = new DataColumnSrv(dataColumn);
if (dataColumnSrv.IsQuery)
{
myStyleDataGridView1.Columns.Add(dataColumn.ColumnName, dataColumn.Caption);
myStyleDataGridView1.Columns[dataColumn.ColumnName].DataPropertyName = dataColumn.ColumnName;
myStyleDataGridView1.Columns[dataColumn.ColumnName].ReadOnly = true;

}
}

三、

1.声明全局变量对象:public object Message { get; set; }

2.选中当前行

DataRow dataRow = (this.myDataGridView1.CurrentRow.DataBoundItem as DataRowView).Row;

3、存储在泛型List<T>对象中

List<DataRow> list = new List<DataRow>() { dataRow };
this.Message = list;

4.变量保存选中的行

List<string> rets = new List<string>();
foreach (DataGridViewRow item in dgv.Rows)
{
if (item.Cells[0].Value + "" == "1")
{
rets.Add(item.Cells["CZDepart"].Value + "");
}
}

this.Message = rets;

5、List中去重复,并用"-"连接起来

List<string> rets = pop.Message as List<string>;
if (rets != null)
{
DataRow dataRow = FormUtil.GetCurrentRow(AppBindingSources, dgv.BindTable);
if (dataRow == null)
return;
string col003 = dataRow["Col_003"] + "";
if (!col003.IsNullOrWhiteSpace())
{
rets.AddRange(col003.Split('-'));
}
rets.Remove("");
dataRow["Col_003"] = string.Join("-", rets.Distinct());//去重复,并用"-"连接起来
}

6.选定行转DataTable

DataTable dtTemp = dgv1.SelectedDataRows.CopyToDataTable();

7.DataGrideView转到DatTable
public static DataTable DataTableChangeColumnName(MyDataGridView dgv, DataTable dtImport)
{
if (dtImport == null) { return null; }

DataTable dtCheck = null;

//列名集合找到,替换
dtImport.TableName = dgv.BindTableName;
dtCheck = dtImport.Copy();
foreach (DataColumn dc in dtCheck.Columns)
{
for (int i = 0; i < dgv.Columns.Count; i++)
{
if (dc.ColumnName.Trim().Equals(dgv.Columns[i].HeaderText.Trim()))
{
dc.ColumnName = dgv.Columns[i].DataPropertyName.Trim();
}
}
}
return dtCheck;
}

8.编辑状态下,取消事件

//编辑状态下
private void dgv_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
{
if (dgv.Columns[e.ColumnIndex].Name == "Col_003")
{
e.Cancel = true;

}
}

9、 键值对用法

汇总
private void getTotal()
{
dict.Clear();
for (int i = 0; i < this.dataGridView1.RowCount; i++)
{

if ((dataGridView1.Rows[i].Cells["IsSelect"].Value + "").ToUpper() == "TRUE")
{
if (!dict.ContainsKey(dataGridView1.Rows[i].Cells["公司名称"].Value + "") || !dict.ContainsValue(dataGridView1.Rows[i].Cells["类型"].Value + ""))
dict.Add(dataGridView1.Rows[i].Cells["公司名称"].Value + "", dataGridView1.Rows[i].Cells["类型"].Value + "");
}
}
}

遍历
foreach (KeyValuePair<string, string> kvp in dict)
{
if (kvp.Value.Equals("取"))
{
mSql += string.Format("UPDATE Table1 SET PickDiffDegree ={0} WHERE Company=N'{1}' ;" + Environment.NewLine, mNdNumber, kvp.Key);
}
}

DataGridView、List<T>相关操作的更多相关文章

  1. DataGridView 相关操作

    一.单元格内容的操作// 取得当前单元格内容 Console.WriteLine(DataGridView1.CurrentCell.Value); // 取得当前单元格的列 Index Consol ...

  2. 从零自学Hadoop(20):HBase数据模型相关操作上

    阅读目录 序 介绍 命名空间 表 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 ...

  3. 从零自学Hadoop(21):HBase数据模型相关操作下

    阅读目录 序 变量 数据模型操作 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 ...

  4. 理解CSV文件以及ABAP中的相关操作

    在很多ABAP开发中,我们使用CSV文件,有时候,关于CSV文件本身的一些问题使人迷惑.它仅仅是一种被逗号分割的文本文档吗? 让我们先来看看接下来可能要处理的几个相关组件的词汇的语义. Separat ...

  5. Liunx下的有关于tomcat的相关操作 && Liunx 常用指令

    先记录以下liunx下的有关于tomcat的相关操作 查看tomcat进程: ps-ef|grep java (回车) 停止tomcat进程: kill -9 PID (进程号如77447) (回车) ...

  6. pip的相关操作

    >Python中的pip是什么?能够做些什么? pip是Python中的一个进行包管理的东西,能够下载包.安装包.卸载包......一些列操作 >怎么查看pip的相关信息 在控制台输入: ...

  7. python操作mysql数据库的相关操作实例

    python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...

  8. php对二维数组进行相关操作(排序、转换、去空白等)

    php对二维数组进行相关操作(排序.转换.去空白等) 投稿:lijiao 字体:[增加 减小] 类型:转载 时间:2015-11-04   这篇文章主要介绍了php对二维数组进行相关操作,包括php对 ...

  9. SQL语言和DML相关操作以及相应的运算符

    SQL 1.结构化查询语言 2.特点 a.第四代编程语言,更接近自然语言 b必须有数据库系统解释执行 c.对象名,关键字不区分大小写 d.字符串必须要用单引号引起来,不能用双引号 e.每条语句最后用分 ...

  10. 如何给ActiveX控件添加“事件”“属性”“标准事件”“自定义事件”等一些相关操作

    上一篇小编带大家熟悉了一下ActiveX的建立以及相关的概念,(http://blog.csdn.net/u014028070/article/details/38424611) 本文介绍下如何给控件 ...

随机推荐

  1. STL-set and multiset

    ! ! ! ! set 中的元素总是保持单调递增. set<int> a; set的插入 set没有尾部插入函数push_back(),元素的插入一般使用insert进行动态检索插入. a ...

  2. 系统学习(javascript)_基础(数据类型之间的转换)

    在js中数据类型转换一般分为两种,即强制类型转换和隐式类型转换(利用javascript弱变量类型转换). 强制转换: 利用js提供的函数parseInt(),parseFloat(),Number( ...

  3. spring-boot-通用mapper

    数据源依赖 druid官方文档:https://github.com/alibaba/druid/wiki/常见问题 <dependency> <groupId>mysql&l ...

  4. 20155303 2016-2017-2 《Java程序设计》第九周学习总结

    20155303 2016-2017-2 <Java程序设计>第九周学习总结 目录 学习内容总结(Linux命令) 教材学习中的问题和解决过程 代码调试中的问题和解决过程 代码托管 上周考 ...

  5. CodeForces 1096E: The Top Scorer

    一道经典组合数学+容斥题. 题目传送门:CF1096E. 题意简述: \(p\) 个人,每个人有得分 \(a_i\). 总得分 \(\sum a_i = s\). 第一个人得分 \(a_1 \ge r ...

  6. 利用rundll32执行程序的函数执行程序

    1.前言 无意间发现hexacorn这个国外大佬,给出了很多通过rundll32执行DLL中的函数执行程序的方法,思路很灵巧. 2.原理 rundll32加载dll 用法: rundll32 < ...

  7. device tree --- #address-cells and #size-cells property【转】

    转自:http://www.cnblogs.com/youchihwang/p/7050846.html device tree source Example1 / { #address-cells ...

  8. 2013 NEERC

    2013 NEERC Problem A. ASCII Puzzle 题目描述:完成一个拼图. solution 暴搜,但好像挺难打的,但听说因为题目限制比较多,其实很多奇怪的情况都不存在. Prob ...

  9. centos7 部署 seafile

    =============================================== 2018/5/13_第1次修改                       ccb_warlock == ...

  10. tensorflow session 和 graph

    graph即tf.Graph(),session即tf.Session(),很多人经常将两者混淆,其实二者完全不是同一个东西. graph定义了计算方式,是一些加减乘除等运算的组合,类似于一个函数.它 ...