Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
SQLServer-Abfrage ausgehend vom Dataset
Paschulke
myCSharp.de - Member



Dabei seit:
Beiträge: 63

Themenstarter:

SQLServer-Abfrage ausgehend vom Dataset

beantworten | zitieren | melden

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?
private Nachricht | Beiträge des Benutzers
Paschulke
myCSharp.de - Member



Dabei seit:
Beiträge: 63

Themenstarter:

beantworten | zitieren | melden

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!
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Paschulke am .
private Nachricht | Beiträge des Benutzers