2011-12-25 5 views
1

혼란이 있습니다.이 혼란은 내 Windows 양식에서 datagridview 데 있습니다. 나는 datagridview가 동일한 열 이름을 가진 여러 테이블에서 바인드 할 수 있습니까?DataGridView 여러 열에서 바인딩

하나의 테이블에는 수량, 특정 및 비율 열이 있습니다. 다른 테이블에도 위와 같은 열 이름이 있습니다. 이 두 테이블을 단일 DataGridview에 바인딩 할 수 있습니까? 내 질문에 이것이 가능한가? 이 같은 쿼리 그렇지 않으면

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

:

+3

왜 downvote? 그 질문은 나와 합법적 인 것으로 보인다. +1 – CapelliC

답변

1

하면 일반 열 이름을 가진 두 개의 테이블에 쿼리 할 때,에 (로)를 한 번 변경해야 선택에 가입, 그래서 쿼리를 반환 확실히 다른 이름으로 열이 :

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

SQL을 최적화 열 중 하나의 이름을 변경하고 (어쩌면) 등으로 데이터를 반환 : [양], [expr1을]

+0

열 이름의 이름을 바꾸시겠습니까? –

+0

조금 정성 들여주세요 :) 정말로 도움이 될 것입니다. 고맙습니다. –

1

레드햇에서 대답이 제한 경우는 괜찮습니다 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와 함께하는 것으로 매우 열정적 이었지만 조금은 잘 모릅니다. :/ –

+0

예, 조금 운동 해주세요! 나중에 보자 ... – CapelliC

+0

'D : \ Projects \ CateringShop \ CateringShop \ CateringShop \ CateringShopDataClasses.designer.cs'의 'CateringShop.CateringShopDataClassesDataContext'유형이 가져온 'CateringShop.CateringShopDataClassesDataContext'의 'D : \ Projects \ CateringShop \ CateringShop \ CateringShop \ bin \ Debug \ CateringShop.exe '를 클릭하십시오. 'D : \ Projects \ CateringShop \ CateringShop \ CateringShop \ CateringShopDataClasses.designer.cs '에 정의 된 유형을 사용합니다. \t D : \ Projects \ CateringShop \ CateringShop \ CateringShop \ Bill.cs 내 응용 프로그램에서 SQL에 linq을 구현하면 경고 메시지가 나타납니다. –

0

사용를 AliasName 조회의는 열

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

그런 다음 다른 열을 바인딩 Quantity1 및 Quantity2를 사용

을 descriminate합니다.

+0

그리고 dgv가 winform에 있고 그 dgv가 3 인 경우 Quantity, Particular, Rate라는 컬럼. 나는이 3 열의 데이터를 table1에서 dgv로 가져 오기를 원하며 동일한 dgv 열에서 동일한 열의 table2 데이터도 가져 오려고합니다. –

+0

@AbidAli :이 결과를 데이터 테이블에 넣고 데이터 테이블을 데이터 소스. – Shyju

관련 문제