【问题标题】:DataGridView Binding from Multiple columns来自多列的 DataGridView 绑定
【发布时间】:2011-12-26 07:33:41
【问题描述】:

我有一个困惑.. 困惑是我在我的 Windows 窗体上有一个 datagridview。我想问一下,datagridview 可以从具有相同列名的多个表中绑定吗?

一个表包含 Quantity、Particular 和 Rate 列 其他表也具有与上面相同的列名称。 这两个表可以绑定到单个datagridview吗? 我的问题是这可能吗?

【问题讨论】:

  • 为什么投反对票?这个问题对我来说似乎是合理的。 +1

标签: c#


【解决方案1】:

当你查询两个具有共同列名的表时,在连接中选择必须重命名一次(as),所以返回查询肯定有不同名称的列:

Select tbl1.Quantity as quantity1 , tbl2.Quantity as quantity2,...

否则如果你这样查询:

Select tbl1.Quantity , tbl2.Quantity,...

Sql 优化器重命名其中一列并返回带有like(maybe) 的数据:[quantity],[expr1]

【讨论】:

  • 请详细说明一下 :) 您的帮助将不胜感激。谢谢 :)
【解决方案2】:

如果您限制为 SQL 提供程序,RedHat 的回答是可以的。更一般地说,您可以使用 Linq(完全相同的 select 运算符!)组合多个数据源(即表或迭代器)。然后只需将其分配给 DataGridView。 编辑:这里是一个示例,HTH

using System;
using System.Linq;
using System.Windows.Forms;

namespace test_linq_join
{
    class MainClass
    {
        private class Cat
        {
            // Auto-implemented properties.
            public int Age { get; set; }
            public string Name { get; set; }
        }
        private class Dog
        {
            // Auto-implemented properties.
            public int Age { get; set; }
            public string Name { get; set; }
        }

        public static void Main (string[] args)
        {
            // these are simple datasources with overlapped fields (i.e. columns)
            Cat[] Cats = { new Cat { Age = 1, Name = "Leo" }, new Cat { Age = 3, Name = "Felix" } };
            Dog[] Dogs = { new Dog { Age = 10, Name = "Old"}, new Dog { Age = 1, Name = "New" } };

            var Pets =
                from C in Cats
                from D in Dogs
                    select new { AgeC = C.Age, AgeD = D.Age, NameC = C.Name, nameD = D.Name };

            var F = new Form();
            F.Controls.Add(new DataGridView { DataSource = Pets.ToList() });
            F.ShowDialog();
        }
    }
}

【讨论】:

  • 你能帮我用 linq 做吗?实际上,我非常热衷于使用 linq,但我对此一无所知.. :/
  • “D:\Projects\CateringShop\CateringShop\CateringShop\CateringShopDataClasses.designer.cs”中的类型“CateringShop.CateringShopDataClassesDataContext”与“D:\Projects”中导入的类型“CateringShop.CateringShopDataClassesDataContext”冲突\CateringShop\CateringShop\CateringShop\bin\Debug\CateringShop.exe'。使用“D:\Projects\CateringShop\CateringShop\CateringShop\CateringShopDataClasses.designer.cs”中定义的类型。 D:\Projects\CateringShop\CateringShop\CateringShop\Bill.cs 当我在我的应用程序中实现 linq to sql 时,我收到警告..
【解决方案3】:

在查询中使用 AliasName 来描述列

  SELECT Table1.Quantity AS Quantity1,Table2.Quantity AS Quantity2
  FROM Table1 INNER JOIN Table2
  ON Table1.SomeID=Table2.OtherID

然后使用 Quantity1 和 Quantity2 来绑定不同的列。

【讨论】:

  • 如果我的 winform 中有 dgv,并且在那个 dgv 中有 3 个列,分别命名为 Quantity、Particular、Rate。我想将这 3 列的数据从 table1 到 dgv 以及同一 dgv 列中相同列的 table2 的数据
  • @AbidAli : 将此结果放入数据表中,您可以将数据表绑定为数据源。
猜你喜欢
  • 2010-09-28
  • 2012-09-14
  • 2011-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-20
  • 2016-02-07
相关资源
最近更新 更多