设置DataSource后DateGridView不显示的问题
在一个WinForm小程序中,有两处需要用DataGridView控件显示数据。设置DataGridView.DataSource为数据查询结果后,第一个DataGridView可以正常显示数据,而第二个DataGridView没有任何反应。
具体代码如下:
- 第一个datagridview的相关代码部分:
OleDbConnection connection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=test.mdb;");
var commandText = "SELECT * FROM AAA";
var command = new OleDbCommand(commandText, connection);
List<TesionData> tesionDatas = new List<TesionData>();
connection.Open();
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
var tesionData = new TesionData
{
ID = reader["aa"].ToString(),
Beach = reader["bb"].ToString(),
Hook = reader["cc"].ToString(),
};
tesionDatas.Add(tesionData);
}
reader.Close();
connection.Close();
DataGridView1.DataSource = tesionDatas;
2. 第二个DataGridView代码部分
与第一个相比,数据读取部分相差不大,区别是分别从两个表中取得数据,然后用了Linq得到一个匿名类的list
var join = from s in sampleRegisters
join t in tensionDatas
on s.Beach equals t.Beach
select new { Beach = s.Beach, Hook = s.Hook, Beacht =t.Beach, Hookt = t.Hook };
DataGridView2.DataSource = join;
经过检查,join已经得到了正确的数据,这段代码没有什么运行时错误,可就是不能显示数据。
对比这两个过程,本质的区别就在赋值给DataSource的变量上,第一个是List<类名>,第二个是一个匿名类的List。
难道join没有被执行吗?改成如下代码,终于成功显示了相关数据,区别在高亮部分:
var join = from s in sampleRegisters
join t in tensionDatas
on s.Beach equals t.Beach
select new { Beach = s.Beach, Hook = s.Hook, Beacht =t.Beach, Hookt = t.Hook };
DataGridView2.DataSource = join.ToList();
设置DataSource后DateGridView不显示的问题的更多相关文章
- C# LIstbox 解决WinForm下ListBox控件“设置DataSource属性后无法修改项集合”的问题
解决WinForm下ListBox控件“设置DataSource属性后无法修改项集合”的问题 分类: winform2008-05-24 02:33 2592人阅读 评论(11) 收藏 举报 winf ...
- 解决WinForm下ListBox控件“设置DataSource属性后无法修改项集合”
解决WinForm下ListBox控件“设置DataSource属性后无法修改项集合” 最近更新: 2013-2-15 587 很少写WinForm程序第一次使用ListBox控件就遇到了比 ...
- LaunchScreen.storyboard 设置图片后不显示(转)
LaunchScreen.storyboard 设置图片后不显示 将图片放在根目录下即可 3D85E99F-A79B-4419-817D-1417E1446624.png 转至:http://ww ...
- ComboBox控件“设置 DataSource 属性后无法修改项集合”的解决【转】
编写Winform程序,遇到comboBox的绑定事件和索引项变更事件的冲突问题,就是“设置 DataSource 属性后无法修改项集合”的错误问题,网上查了很多,大多说在索引项变更是进行非空判断,还 ...
- 【原】UILabel 设置了 attributedText 后省略号不显示
在开发中,对于一个 UILabel 我们都会设置 lineBreakMode 属性. 我在开发中就遇到个比较有意思的问题,所以就写了这篇博客,与大家共勉! 对于一个 UILabel ,我先设置了 se ...
- jmeter 通过csv data set config 设置参数化后,执行结果显示为<EOF>
通过csv data set config 设置参数化后,执行结果显示为<EOF>: 反复确认相应的参数的设置均没有问题,其中csv文件编码方式采用uft-8.在csv data set ...
- android开发之当设置textview多少字后以省略号显示。限制TextView的字数
设置多少字后以省略号显示 <TextView android:id="@+id/tv" android:layout_width="wrap_conten ...
- 解决Button设置disabled后无法执行后台代码问题
一.开始调式下面的程序,发现Button在js中设置disabled后无法执行后台代码(btnsave_Click)问题 <asp:Button ID="btnsave" r ...
- css实现超出一行后用省略号显示
css实现超出一行后用省略号显示 a{display:inline-block; text-overflow:ellipsis; white-space:nowrap; overflow:hidden ...
随机推荐
- linux虚拟机上不了网--桥接方式--问题一直未解决
转载的:可是自己的虚拟机就是上不了网,无线网卡该配的也配了还是不行,如果真有台物理机器就行了,省了好多事:但是模拟性能时肯定不行了:有人知道是什么原因不? 虚拟机网络模式 无论是vmware,virt ...
- windows编程环境
自行下载VS2010官方原版并破解你也可以从微软官方直接下载VS2010 正式版,然后自行破解.Microsoft Visual Studio 2010官方下载地址如下:页面:http://www.m ...
- HttpClient——Get,Post
package com.ch.day5_httpclient; import java.util.List; import com.ch.myutils.NetWorkUtil; import com ...
- python之编写三层菜单(第一天)
作业三:多级菜单 三级菜单 可依次选择进入各子菜单 所需新知识点:列表.字典 针对此菜单程序的设计,使用了yaml格式的文本,由python对其内容进行解析为多重字典,然后对字典进行遍历,判断并输出三 ...
- ASP.NET Repeater嵌套Repeater实现菜单加载
在KS系统中要实现从数据库中读取界面权限文件实现菜单.界面的动态加载. 效果图: ASP.NET界面代码 <div id="menu-container"> <a ...
- 利用CSS、JavaScript及Ajax实现图片预加载的三大方法
预加载图片是提高用户体验的一个很好方法.图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度.这对图片画廊及图片占据很大比例的网站来说十分有利,它保证了图片快速.无缝地发布 ...
- 007_Web to lead
- String split
这个方法看似简单,其实如果使用不当,会出现很多问题 System.out.println(":ab:cd:ef::".split(":").length);// ...
- Father Christmas flymouse--POJ3160Tarjan
Father Christmas flymouse Time Limit: 1000MS Memory Limit: 131072K Description After retirement as c ...
- NOI 动态规划题集
noi 1996 登山 noi 8780 拦截导弹 noi 4977 怪盗基德的滑翔翼 noi 6045 开餐馆 noi 2718 移动路线 noi 2728 摘花生 noi 2985 数字组合 no ...