julia4 Geschrieben 19. Dezember 2014 Geschrieben 19. Dezember 2014 Hallo, ich habe folgendes Problem. Bei mir geht es eigentlich grundsätzlich darum einen windows dienst zu erstellen. (Also ich habe keine GUI oder ähnliches). Dieser soll nur SQL-Daten auslesen und diese Werte dann in einer neuen Tabelle speichern. Ich habe bei VisualStudio über den Assitenten also eine neue Db angelegt. Nun bin ich aber an der Fülle der Informationen etwas überfordert. Es wäre super, wenn ihr mir einen kurzen Überblick geben könntet, wie es nun weitergeht. Ich bräuchte nur eine grobe Struktur. SqlDataAdapter,SqlConnection, SqlTransaction, SqlCommand.... puhhh Also ich brauche ja z.B eine TableAdapter um eine KOmmunikation zu Db zu ermöglichen. Dann brauche ich einen Datenreader um die Ergebnisse auszulesen. In der SqlConnection gebe ich meine DB verbindung an. Und SQLCommand dann den Befehl. (Egal ob Select oder Insert) Brauche ich immer einen SqlConnectionStringBuilder? Zitieren
Mttkrb Geschrieben 20. Dezember 2014 Geschrieben 20. Dezember 2014 (bearbeitet) Hallo, ich würde das EntityFramework 6.1 nutzen. Damit hast du auch gleich deine Entitäten als Klassen und kannst damit per LinqToSQL schnell zu deinen Ergebnissen kommen. Dies hier sollte als Einstieg erst einmal helfen: Entity Framework Code First to an Existing Database Deine Solution würde ich grob wie folgt gliedern: -Projekt für DB -Projekt für Windows-Dienst/CMD-Anwendung Gruß Joigibaer0411 Bearbeitet 20. Dezember 2014 von Jogibaer0411 Zitieren
Gooose Geschrieben 20. Dezember 2014 Geschrieben 20. Dezember 2014 Ich habe bei VisualStudio über den Assitenten also eine neue Db angelegt. Nun bin ich aber an der Fülle der Informationen etwas überfordert. Nutze die Tools von deinem DBMS um Datenbanken anzulegen. (Beim MSSQL Server währe es das Management Studio). Datenbanken sind mit "nativen" Tools einfacher zu pflegen. Es wäre super, wenn ihr mir einen kurzen Überblick geben könntet, wie es nun weitergeht. Ich bräuchte nur eine grobe Struktur. SqlDataAdapter,SqlConnection, SqlTransaction, SqlCommand.... puhhh Schau dir mal den SqlDataReader an. Unten auf der Seite findest du ein Beispiel, wie man ihn anwenden kann. Diese Klasse ist häufig Basis für ORMs im .NET Umfeld. Schau dir den System.Data.SqlClient Namespace an. Das Datenbank Kapitel aus Visual C# 2012 ist auch ein guter Einstieg. ... Dieser soll nur SQL-Daten auslesen und diese Werte dann in einer neuen Tabelle speichern. Wenn es nur um ein paar überschaubare SELECTS, UPDATES und INSERTS geht, könnte dir auch Dapper helfen. Dapper ist ein micro-ORM, d.h. es nimmt dir nicht die komplette Arbeit ab. Dafür bist du näher an der Datenbank. Es reduziert den Boilerplate Code auf ein Minimum. Nimm Komplexität raus, wenn es am Anfang zu viel auf einmal ist. Bau erst mal eine Konsolenanwendung, und lass sie nach und nach wachsen. Konsolenanwendungen sind einfacher zu testen. Zitieren
julia4 Geschrieben 28. Dezember 2014 Autor Geschrieben 28. Dezember 2014 Vielen Dank schon mal für eure Antworten. Ich konnte mir jetzt mit eurer Hilfe schon erste Beispiel-Projekte machen. Jetzt stelle ich mir gerade die Frage wie ich große Mengen von einer SQLDatenbank hole und sie dann wieder einlese. Hab dazu bei meinem Internetrecherchen BULK INSERT gefunden. Wann ist das sinnvoll? Was ist genau der unterschied zu einer "normalen" select-insert anweisung? LG, Dana Zitieren
Mttkrb Geschrieben 28. Dezember 2014 Geschrieben 28. Dezember 2014 Hi, Im Falle vom Entity Framework klappt das auch wie im Beispiel beschrieben mit großen Datenmengen. Gruß Jogibaer0411 Zitieren
SilentDemise Geschrieben 29. Dezember 2014 Geschrieben 29. Dezember 2014 Hi, Im Falle vom Entity Framework klappt das auch wie im Beispiel beschrieben mit großen Datenmengen. Gruß Jogibaer0411 Wow, hilfreichste antwort ever. "Was ist ein Bulk insert?" "Nimm doch Entity Framework!" ... Bulk insert an sich ist erstmal eine Methode um mehrere Datensätze in einem Commit (sprich erst alle in die datenbank, dann speichern) in der Datenbank zu speichern, im gegensatz zum herrkömmlichen Insert Into, bei dem jeder Datensatz einzeln gespeichert wird. Wann das sinnvoll ist hängt von deinen Daten und deiner Datenbank, bzw. Anwendung ab. Was bedeutet denn eine große Menge Daten in deinem Fall? Grundsätzlich hat jogi nicht ganz unrecht, Entity Framework kann dir hier eine ganze Menge abnehmen, was den Umgang mit den Daten erleichtert. Leider ist auch Entity Framework nicht ganz Fehler- und Problemfrei. Man sollte also genau abwägen auf welche Methode man hier setzt. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.