Laden...

SQLServer-Abfrage ausgehend vom Dataset

Erstellt von Paschulke vor 12 Jahren Letzter Beitrag vor 12 Jahren 416 Views
P
Paschulke Themenstarter:in
69 Beiträge seit 2011
vor 12 Jahren
SQLServer-Abfrage ausgehend vom Dataset

verwendetes Datenbanksystem: SQLServer

Hallo zusammen,

ich habe folgendes Problem:
Ich möchte ein Dataset validieren. Das heißt, ich möchte prüfen, ob das Dataset noch zu der aktuellen Datenbank-Version passt. Wenn sich beispielsweise ein Tabellenname ändert, soll mir die Methode mitteilen, dass ich das Dataset anpassen muss (natürlich etwas dataillierter).

Frage dazu:
Gibt es eine Möglichkeit vom DataSet auf die zugehörigen TableAdapter zu kommen? Oder kann ich sonst irgendwie ausgehend von den Informationen eines DataSets eine Abfrage auf die Datenbank ausführen?

Konkretes Beispiel:
Ich möchte schreiben:

string.Format("Select * from {0}.{1}", sqServerSchemaName, sqlServerTableName);

Ich habe zur Verfügung: Das DataSet (und damit die DataTable).

Kann mir jemand helfen?

P
Paschulke Themenstarter:in
69 Beiträge seit 2011
vor 12 Jahren

Ich habe es mittlerweile über Reflection gelöst. Ist natürlich unschön, funktioniert für meinen Anwendungsfall aber erst einmal:



... //Ermittlung dataSetNamespace (auch über Reflection)

foreach (DataTable table in dataSet.Tables)
{
    string typeName = dataSetNamespace + "." + dataSet.DataSetName + "TableAdapters." + table.TableName + "TableAdapter";
    object objAdapter = assembly.CreateInstance(typeName);
    SqlDataAdapter dataAdapter = RetrieveValueFromInstanceProperty<SqlDataAdapter>(objAdapter, "Adapter"); //Hilfsmethode
    SqlCommand[] commandCollection = RetrieveValueFromInstanceProperty<SqlCommand[]>(objAdapter, "CommandCollection"); //Hilfsmethode
    dataAdapter.SelectCommand = commandCollection[0];
    dataAdapter.Fill(dataSet);
}

Falls jemand eine bessere Lösung hat, her damit!