设置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 ...
随机推荐
- MIL 多示例学习 特征选择
一个主要的跟踪系统包含三个成分:1)外观模型,通过其可以估计目标的似然函数.2)运动模型,预测位置.3)搜索策略,寻找当前帧最有可能为目标的位置.MIL主要的贡献在第一条上. MIL与CT的不同在于后 ...
- Android USB Host与HID通讯
前端时间捣鼓一个HID的硬件, 需要和android通信, 网上搜索了一圈,收获不小. 比较好的文章是: Android USB Host与HID通讯 Android Service创建US ...
- MySQL的create table as 与 like区别
对于MySQL的复制相同表结构方法,有create table as 和create table like 两种,区别是什么呢? ? 1 create table t2 as select * fro ...
- 剖析javascript全局变量和局部变量
首先要记住: javascript是弱类型语言,它只有一种变量类型(var),为变量赋值时会自动判断类型并进行转换. 全局变量和局部变量如何声明? 全局变量声明: 第一种方式(函数外) var a; ...
- insmod过程详解【转】
转自:http://blog.csdn.net/chrovery/article/details/51088425 转自 http://blog.chinaunix.net/xmlrpc.php?r= ...
- ftp发送文件
#!/bin/bash #author:luyongjin IP=220.250.65.22 USERNAME='ftp_hangye20' PASSWORD='oUo2JD7oK#u-epw' #D ...
- angular-select绑定之后option不能更新问题
使用ng-option-- http://jsfiddle.net/sseletskyy/uky9m/1/ 以及select中加入自定义指令 convert-to-number .directive ...
- android使用默认程序进行图片拍照已经裁剪,以及设备读取
//代码如下: package com.cbsw.yulechangsuo.activity; import java.io.File;import java.io.FileInputStream;i ...
- C++ STL中的 iterator 和 const_iterator
我们在C++中使用STL的容器时,经常会用到迭代器.使用迭代器可以很方便的进行容器元素遍历和修改等操作. 近日,在使用Visual Studio 2015编程的时候发现,set的迭代器直接就是cons ...
- java.sql.SQLException: ORA-00001: 违反唯一约束条件 (SCOTT.SYS_C0011456)
我tb_user数据库的主键是id,在这个java程序中: String sql="insert into tb_user(id,USER_NAME,USER_PASSWORD) value ...