2017-05-18 6 views
0

Ich bin nicht aC# -Entwickler und ich fand mich bei der Arbeit mit einer großen C# .NET-Anwendung arbeitet ... Umarmung ..Wie kann ich 2 DataView in 2 verschiedenen Arten zusammenführen?

Jetzt in Ich versuche, ein vorhandenes Datagrid mit etwas mehr Daten zu füllen, die ‚geschaffen‘ wurden ein anderer Weg ... lass mich dir zeigen, was ich meine.

Dies ist, wie die bestehende Dataview generiert wird:

Dim lDataSet As System.Data.DataSet 
Dim lSqlCommand As New System.Data.SqlClient.SqlCommand 
Dim lConvert As New PeoplePlanner.Common.Data.Convert 

lSqlCommand.CommandType = CommandType.StoredProcedure 
lsqlCommand.CommandText = "AccessIntegrationEmployeeInboundSearch" 

lDataSet = objDatabase.GetDataSet(lSqlCommand) 

If Not IsNothing(lDataSet) Then 
    objDataView = lDataSet.Tables(0).DefaultView 
End If 

Es gibt wohl Sachen in diesem Code fehlt, aber hoffentlich ist es genug, um einen Überblick zu bekommen. Es verwendet Stored Procedure (SP), um einige Daten aus der Datenbank abzurufen, und gibt das Ergebnis innerhalb von 'lDataSet' zurück und dann 'objDataView = lDataSet.Tables (0) .DefaultView'.

Nun die neuen Daten, die ich "zusammenführen" möchte, hat die gleichen Felder, aber es ist nicht die Antwort eines SP, sondern eine von mir erstellte Operation, die eine Liste von OnBoardingEmployee zurückgibt (nennen wir es so)) und wenn ich richtig in dieser Liste nur die Daten angezeigt werden sollen, ist es das, was ich tue:

Dim lDataView As System.Data.DataView 

Dim op = CoreInjector.Inject(Of IGetAllDataHubIncomingMessagesToBeProcess).Execute() 
lDataView = Common.Detail.DataGridOperationHelper.ConvertToDataTable(op.OnBoardingEmployee).DefaultView 

objDataView = lDataView 

Wo:

  • op eine Liste von OnBoardingEmployee enthält, die die gleichen Felder wie die vorhandene Tabelle hat
  • l Dataview ist im Grunde das gleiche wie objDataView, deshalb als letzter Schritt ist ich zuweisen objDataView = lDataView

Nun möchte ich im Grunde fusionieren möchten, verbinden sie, hinzufügen, was Die objDataView für die erste Tabelle erstellt: objDataView = lDataSet.Tables(0).DefaultView

mit der, die ich habe danach erstellt:

lDataView = Common.Detail.DataGridOperationHelper.ConvertToDataTable(x.OnBoardingEmployee).DefaultView 

Wie kann ich das tun? :. '(

Sie die gleiche Datenstruktur haben oder besser sagen, dass sie die gleiche Ansicht verwenden

Danke für die Hilfe :)

+0

Beginnen Sie, indem Sie sich mit der [DataTable-Klasse] vertraut machen (https://msdn.microsoft.com/en-us/library/system.data.datatable (v = vs.110) .aspx). – TnTinMn

Antwort

0

Ich habe es bekam arbeiten :) Das ist meine Umsetzung:

Verwandte Themen