2011-01-07 6 views
0

나는 이것이 내 질문에 대한 잘못된 부분이라면 나를 용서한다. 내 문제는 데이터 집합의 내용으로 datgrid를 채울 수 없다는 것입니다. 지난 며칠 동안이 문제를 해결하기 위해 검색 한 결과, 나는 포기하고 여기에서 시도 할 것이라고 생각했습니다. Vs 2010 VB.Net을 사용하고 있으며 WPF 응용 프로그램입니다. 코드에서 알 수 있듯이이 기능에 익숙하지 않으며 개선을위한 제안 사항이 가장 환영받을 것입니다. 비주얼 라이저를 통해 데이터 세트가 채워지는 것을 볼 수 있습니다. 결과를 표시하려는 DataGrid 'dgBOM'이 있습니다. 내 검색에서 인기있는 솔루션은 '.DataSource'를 추가하는 것이지만 '.'을 입력하면됩니다. dgBOM 이후에는 Datasource 옵션이 없습니다.Datatable에서 WPF Datagrid를 채우려면 어떻게해야합니까?

도움을 주시면 감사하겠습니다.

감사합니다.

코드는 :

Public Sub Connect() 
    Dim cn As OleDbConnection 
    Dim cmd As OleDbCommand 
    Dim dr As OleDbDataReader 
    Dim ds As DataSet 
    Dim da As OleDbDataAdapter 
    Dim dt As DataTable 
    Dim drow As DataRow 
    Dim PartColumn As DataColumn 
    Dim CostColumn As DataColumn 
    dt = New DataTable("BOM") 
    ds = New DataSet("BOM") 
    PartColumn = New DataColumn("PartNo") 
    CostColumn = New DataColumn("Cost") 
    da = Nothing 
    cn = Nothing 
    dr = Nothing 
    Try 
     cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=\\Ls-wtgl834\share\Adrian\PriceLists\WAP-PriceLists.mdb;User ID=Admin") 
     cn.Open() 
     cmd = New OleDbCommand("select * from Inventory", cn) 
     dr = cmd.ExecuteReader 
     da = New OleDbDataAdapter(cmd) 
     dt.Columns.Add(PartColumn) 
     dt.Columns.Add(CostColumn) 
     While dr.Read() 
      If dr(0) = FBladeExtNo Then 
       FrontBladeCost = dr(1) 
       drow = dt.NewRow() 
       drow("PartNo") = FBladeExtNo 
       drow("Cost") = FrontBladeCost 
       dt.Rows.Add(drow) 
       ds.Tables.Add(dt) 
       Exit While 
      End If 
     End While 
     dgBOM.ItemsSource = ds 
    Catch 
    End Try 
    dr.Close() 
    cn.Close() 
End Sub 

답변

0

나는 DataReader를하고 모든 것을 포기했다. 2 년 전부터 변경 추적 및 동시성 및 관계 추적에 대한 모든 논리를 제공해야했던 프로그램을 작성한 후에 시간이 많이 걸리기 때문에 모든 것을 던졌습니다.

요즘에는 O/RM 프레임 워크를 사용합니다. 그것은 객체/관계 매핑입니다. 가장 큰 두 가지는 Entity Framework (개인적으로 선호하는 프레임 워크)와 NHibernate (원래 Java 용이지만 .NET 용으로 포팅 됨)입니다. 이러한 프레임 워크를 사용하면 데이터베이스 테이블을 .NET 클래스에 매핑 할 수 있습니다. Visual Studio 2010의 EF를 사용하면 Model-First 및 Database-First 개발을 수행 할 수 있습니다. Model-First를 사용하면 어떻게 작성했는지 또는 도구로 생성 한 것들을 작성할 수 있습니다 (Entity Frameworks 케이스에서.

). (예 : 주소, 전화 번호 및 이벤트 모음이있는 Customer 클래스)를 생성 한 다음 해당 데이터를 저장할 데이터베이스를 생성합니다. 데이터베이스 - 처음은 반대입니다. 데이터베이스를 만들고 EF 시도 데이터베이스 구조를 반영하는 모델 만들기. 연결 문자열 생성, 엔티티 변경 추적 및 동시성을 처리하며, 내 의견으로는 꽤 빠른 속도로 생성되는 멋진 개체의 데이터를 제공합니다. 개인적으로 EF 데이터 검색 속도가 빨라졌습니다. 내 손이 데이터 검색 및 개체 채우기를 실행했습니다.

WPF는 데이터 바인딩 기능과 함께 DataReaders 및 DataAdapter보다 이러한 데이터 개체 (여기서는 개체라고 부름)에 더 적합합니다. 바로 들어가기를 원한다면, EF 시작하기에 약간 Microsoft video입니다. 또한 그들이 좋은 물건을 가지고 있으므로 WindowsClient.net을 확인하십시오.

나중에 EntityFramework가 중단되면 MVVM 디자인 패턴을 확인하십시오.

관련 문제