一、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. HDU 2087 剪花布条 (KMP 不允许重叠的匹配)

    题目链接 Problem Description 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案.对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢? Inp ...

  2. PHP验证注册信息

    注册页面reg.html <form action="reg.php" method="post"> 用户名<input type=" ...

  3. Hibernate5笔记3--详解Hibernate的API

    详解Hibernate的API: (1)Configuration接口: org.hibernate.cfg.Configuration接口的作用是加载主配置文件及映射文件,以实现对Hibernate ...

  4. oracle关键字作为字段名使用方法

    有时我们在定义字段名及别名时所用名与oracle关键字同名,这时该如何处理呢? 其实很简单,只要在此关键字加上"",如"group" SQL> DROP ...

  5. Redis—数据结构之list

    Redis的列表对象底层所使用的数据结构其中之一就是list. list Redis的list是一个双端链表,其由3部分构成:链表节点.链表迭代器.链表.这一设计思想和STL的list是一样的,STL ...

  6. redis从入门到放弃 -> 部署方案

    单点部署方案 环境准备: [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [root@ ...

  7. Python基础:内置常量

    本文根据Python 3.6.5的官文Built-in Constants编写,官文比较短,大家可以直接看原文. 有一些存在于 内置名称空间(the built-in namespace) 的常量,如 ...

  8. 下一代Android打包工具,100个渠道包只需要10秒钟 https://github.com/mcxiaoke

    https://github.com/mcxiaoke/packer-ng-plugin https://github.com/Meituan-Dianping/walle https://githu ...

  9. Oracle与Sqlserver数据共享

    需求:在一个集成平台中有一个主系统使用的是Oralce数据库,子系统使用的SqlServer 数据库,如何让子系统的数据库与主系统的人员同步呢? 思路:通过服务WebService 公开接口 1.与主 ...

  10. 使用mongo-java-driver-3.0.2连接MongoDB数据库

    这里使用的mongodb的java驱动版本是:3.0.2,文件名mongo-java-driver-3.0.2.jar  博客本地下载下载网址(也可以下载其它版本):http://central.ma ...