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 :)
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