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 ...
随机推荐
- 如何给Windows2016新建IIS并建立网站
首先在菜单按钮旁右击-----点击Control Panel(控制面板) 点击Turn Windows features on or off 开始设置环境!!!!! 认真勾选参数!!! 然后点击安装! ...
- 页面结构化在 Android 上的尝试
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/M45DM5Ix7a2fmrsE8VPvxg 作者:b ...
- Linux 桌面玩家指南:03. 针对 Gnome 3 的 Linux 桌面进行美化
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- Mybatis之旅第三篇-SqlMapConfig.xml全局配置文件解析
一.前言 刚换工作,为了更快的学习框架和了解业务,基本每天都会加班,导致隔了几天没有进行总结,心里总觉得不安,工作年限越长越感到学习的重要性,坚持下去!!! 经过前两篇的总结,已经基本掌握了mybat ...
- 一套代码小程序&Web&Native运行的探索04——数据更新
接上文:一套代码小程序&Web&Native运行的探索03 对应Git代码地址请见:https://github.com/yexiaochai/wxdemo/tree/master/m ...
- msql分区
确认mysql服务器是否支持分区表: show plugins; 如果能看到partition则表示能分区. HASH分区的特点: 根据MOD(分区键,分区数)的值把数据行存储到表的不同分区中 数据可 ...
- .NET Core 2.2 新增部分功能使用尝鲜
前言 美国当地时间12月4日,微软2019开发者大会中发布了一系列的重磅消息,包含了软硬件和开源社区的各种好消息是铺天盖地,作为一名普通的开发者,我第一时间下载了 .NET Core 2.2 ...
- 痞子衡嵌入式:开启NXP-MCUBootUtility工具的HAB加密功能 - CST(中英双语)
1 Reason for enabling HAB encryption function 为什么要开启HAB加密功能 NXP-MCUBootUtility is a tool designed fo ...
- 【带着canvas去流浪】(1)绘制柱状图
目录 一. 任务说明 二. 重点提示 三. 示例代码 四. 思考题 示例代码托管在:http://www.github.com/dashnowords/blogs 博客园地址:<大史住在大前端& ...
- C# 数组Array
数组是对相同类型的一组数据的封装.数组定义的时候,要说明是对哪一种类型的封装,并且要指定长度. using System; using System.Collections.Generic; usin ...