2011-12-25 55 views
1

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

一张表具有列数量,特殊和比率 其他表格也具有与上面相同的列名称。 这两个表可以绑定到单个datagridview吗? 我的问题是这可能吗?

+3

为什么downvote?这个问题对我来说似乎合法。 +1 – CapelliC 2011-12-25 21:24:22

回答

1

当你在两个表有一个共同的列名称查询,在加入选择必须一次重命名(如),所以返回查询肯定有不同的名称列:

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

否则,如果你这样的查询:

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

SQL优化重命名列的一个,并与像返回数据(可能):数量],[表达式1]

+0

重命名列名称? – 2011-12-25 21:25:31

+0

请详细说明一下:) 您的帮助确实会非常感谢。 thanx :) – 2011-12-25 21:26:19

1

从RedHat的答案是好的,如果你限制到SQL提供程序。更一般地说,您可以使用Linq(与选择操作符相同)来组合多个数据源(即表或迭代器)。然后简单地将其分配给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(); 
     } 
    } 
} 
+0

你能帮我用linq做吗?其实我对linq做得非常热心,但是我不知道它有点...... ../ – 2011-12-25 21:32:46

+0

是的,请稍微锻炼一下吧!以后再见...... – CapelliC 2011-12-25 22:09:40

+0

'D:\ Projects \ CateringShop \ CateringShop \ CateringShop \ CateringShopDataClasses.designer.cs'中'CateringShop.CateringShopDataClassesDataContext'类型与'D:\ Projects \ CateringShop \ CateringShop \ CateringShop \ BIN \调试\ CateringShop.exe”。使用'D:\ Projects \ CateringShop \ CateringShop \ CateringShop \ CateringShopDataClasses.designer.cs'中定义的类型。 \t D:\ Projects \ CateringShop \ CateringShop \ CateringShop \ Bill.cs 当我在我的应用程序中实现linq到sql时,我收到警告.. – 2011-12-27 15:15:33

0

使用在aliasname的查询到descriminate列

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

然后使用数量1和Quantity2结合不同的列。

+0

以及如果我在我的winform中有dgv,并且在那个dgv中我有3个列名为Quantity,Specific,Rate。 我想将这3列从table1到dgv的数据以及同一dgv列中相同列的table2的数据 – 2011-12-27 04:13:02

+0

@AbidAli:将此结果放在一个数据表中,您可以将数据表绑定为数据源。 – Shyju 2011-12-27 13:48:50