C#行转列&绑定DGV
c#行转列
今天工作中,恰好写到此处,想起之前第一次行转列的时候,卡壳了好久,今天正好碰上,故而花费几分钟,整理成案例,分享到博客上。
这是个很简单的功能,第一次可以使用案例,后面最好能达到信手拈来的地步。
开发要素第一步:
各种控件的命名要改:这个跟技术能力无关,工作再赶再忙,这个也必须要改,因为改这个会为后面开发省去很多时间。不要觉得改这个是在浪费时间,开发的人员都懂,就不多说了。
demo功能简单介绍:》初始化加载的时候,加载DGVtable, 如何点击行转列按钮,将DGVtable里面的数据,行转列,然后绑定到DGVRowTrasCell上,就可以秀出来了。
上图是dsTemp.Tables[0]绑定的DGVtable。也就是初始化加载的效果。
上图是代码部分。dsTemp.Tables[0]里面的内容见下图。
点击行转列按钮后,见最后效果图(如下图)
最后,其实我不想将源码放出来的,因为会的人根本就没有必要看,就能信手拈来。不会的人正好借此机会写一下代码增强印象(ps:勤动手,不要懒,智力不行勤来补)。但是一想到当初我初为程序员的那段孤苦无依的日子,总希望有人指点的岁月,因此还是将关键代码放出来应急。切记一定要理解透彻,否则下次遇到还是不会。
public void btnRowTrasCell_Click(object sender, EventArgs e)
{//行转列:
//1.先声明一张表table来接收转换后的数据
//2.用循环将表头塞入table
//3.用循环将数据行列转换,并塞入table
//4.将table绑定至新dgv上
DataTable table = new DataTable();//1.
for (int i = 0; i < dsTemp.Tables[0].Rows.Count; i++)
{ //2.获取表头:此处将第一列当成表头
string ColName = dsTemp.Tables[0].Rows[i][0].ToString();//将每一行的第一列的值 赋值给变量
//string ColName=dsTemp.Tables[0].Rows[i]["列名字段"].ToString(); //这种写法也行,写法不唯一
table.Columns.Add(ColName);//将变量塞入表头中:这样循环就获取了表头
}
for (int c = 1; c < dsTemp.Tables[0].Columns.Count; c++)//c:cell列的意思 r:row行的意思
{//按照列循环:如dgv第二列的值,恰好是table的第一行的值
DataRow dr = table.NewRow();
for (int r = 0; r < dsTemp.Tables[0].Rows.Count; r++)
{//3.获取表列的数据
dr[r] = dsTemp.Tables[0].Rows[r][c].ToString();//获取每一行单元格的值
}
table.Rows.InsertAt(dr, table.Rows.Count);//将写好的行Insert进table
}
//4.绑定dgv
DGVRowTrasCell.DataSource = table;
}
*其实行转列在sql里面可以一步完成,这就要求对sql的熟练程度相当高。望有缘人看到这段代码的时候,可以拓展一下,用sql实现行转列,然后评论在上面,供后来者参考。
不说了,当误了半小时,要去做今天的开发任务了。
C#行转列&绑定DGV的更多相关文章
- [WinForm] DataGridView 绑定 DT && ComboBox 列绑定 Dict
一 需求介绍 一般像枚举类型的数据,我们在数据库里存储着诸如(1.2.3.4-)或者("001"."002"."003"-)此类,但是界面 ...
- SQL Server 动态行转列(参数化表名、分组列、行转列字段、字段值)
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现代码(SQL Codes) 方法一:使用拼接SQL,静态列字段: 方法二:使用拼接SQL, ...
- T-SQL 实现行转列
问题: 我正在寻找一种有效的方式将行转换为SQL服务器中的列 例如,通过下表如何构建出预期结果表. Id Value ColumnName 1 John FirstName 2 2 ...
- Oracle行转列、列转行的Sql语句总结
多行转字符串 这个比较简单,用||或concat函数可以实现 SQL Code 12 select concat(id,username) str from app_userselect i ...
- sql的行转列(PIVOT)与列转行(UNPIVOT)
在做数据统计的时候,行转列,列转行是经常碰到的问题.case when方式太麻烦了,而且可扩展性不强,可以使用 PIVOT,UNPIVOT比较快速实现行转列,列转行,而且可扩展性强 一.行转列 1.测 ...
- 做图表统计你需要掌握SQL Server 行转列和列转行
说在前面 做一个数据统计和分析的项目,每天面对着各种数据,经过存储过程从源表计算汇总后需要写入中间结果表以提高数据使用效率,那么此时就需要用到行转列和列转行. 1.列转行 数据经过计算加工后会直接生成 ...
- SQL SERVER特殊行转列案列一则
今天有个同事找我,他说他有个需求,需要进行行转列,但是又跟一般的行转列有些区别,具体需求如下所说,需要将表1的数据转换为表2的显示格式. 我想了一下,给出了一个解决方法,具体如下所示(先给出测试数据) ...
- SQL Server中使用PIVOT行转列
使用PIVOT行转列 1.建表及插入数据 USE [AdventureDB] GO /****** Object: Table [dbo].[Score] Script Date: 11/25/201 ...
- oracle行转列与列转行
一.行转列 在有些应用场景中,如学生成绩.学生所有科目的成绩都保存到一张表里面,当我们需要以列表的形式显示出学生所对应的每一科目的成绩的时候,需要使用到行转列. 示例 -- 学生成绩表 create ...
随机推荐
- Taurus.MVC 2.3 开源发布:增强属性Require验证功能,自带WebAPI文档生成功能
背景: 上周,把 Taurus.MVC 在 Linux (CentOS7) 上部署任务完成后. 也不知怎么的,忽然就想给框架集成一下WebAPI文档功能,所以就动手了. 以为一天能搞完,结果,好几天过 ...
- 在asp.net core2.1中添加中间件以扩展Swashbuckle.AspNetCore3.0支持简单的文档访问权限控制
Swashbuckle.AspNetCore3.0 介绍 一个使用 ASP.NET Core 构建的 API 的 Swagger 工具.直接从您的路由,控制器和模型生成漂亮的 API 文档,包括用于探 ...
- python的append insert extend pop del remove使用
对于 python 数组的操作,有插入和删除,下面介绍各个函数的功能: 插入 插入的函数有 append.insert .extend append append(i) 是在数组的末尾插入一个元素 i ...
- IDEA指定.class文件输出位置
1.File > Project Structure > Project > Project compiler output 项目中的默认编译输出总目录 2.我习惯于把.class ...
- mysql的学习笔记(四)
---恢复内容开始--- 1.插入操作 INSERT (1)INSERT table_name(col_name,...) VALUES(...),(....) CREATE TABLE user( ...
- qml demo分析(threading-线程任务)
一.关键类说明 qml内置了WorkerScript组件,该组件有一个source属性,可以加载js文件,含有一个名为message的信号,意味着他有一个默认的onMessage槽函数,除此之外他还有 ...
- Spring Boot系列(一) Spring Boot准备知识
本文是学习 Spring Boot 的一些准备知识. Spring Web MVC Spring Web MVC 的两个Context 如下图所示, 基于 Servlet 的 Spring Web M ...
- 为什么要抛弃Pact?如何快速实现契约测试(CDC)
前言 在前几天的博客中,我转载了一篇文章,其中介绍了契约测试和pact是怎么实施的,的确很有帮助.但我经过研究,其实是pact本身也是有缺陷的,结合我近期在使用的服务型工具和我的实际情况,觉得实现契约 ...
- vue中用mock制造模拟接口(本文主要解决坑),一定要看完哦
最近新入职一家公司,后端造接口速度很慢,想来想去还是搞一套模拟接口,来满足开发需求,有人会问,我造一个死数据不就可以了吗?或者说,后端数据结构都没出来,字段我怎么定? 问这个问题的人不奇怪,我之前也有 ...
- Apache web服务器(LAMP架构)(week3_day4)--技术流ken
apache介绍 1).世界上使用率最高的网站服务器,最高时可达70%:官方网站:apache.org 2).http 超文本协议 HTML 超文本标记语言 3).URL 统一资源定位符 http:/ ...