zoukankan      html  css  js  c++  java
  • 设置DataSource后DateGridView不显示的问题

        在一个WinForm小程序中,有两处需要用DataGridView控件显示数据。设置DataGridView.DataSource为数据查询结果后,第一个DataGridView可以正常显示数据,而第二个DataGridView没有任何反应。

        具体代码如下:

    1.   第一个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();
  • 相关阅读:
    IIS配置文件的XML格式不正确 applicationHost.config崩溃 恢复解决办法
    ReSharper 配置及用法
    二进制流互转
    本地无法启动MySQL服务,报的错误:1067,进程意外终止---解决
    Mysql-SqlServer区别
    windows服务部署
    JSON序列化反序列化
    正则表达式提取HTML中img标签的src地址
    SqlServer数据类型
    SSD(Single Shot MultiBox Detector)
  • 原文地址:https://www.cnblogs.com/jqdy/p/6238937.html
Copyright © 2011-2022 走看看