Zum Inhalt springen

Grundlagen SQL Verbindung C# Windows Dienst


Empfohlene Beiträge

Geschrieben

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?

Geschrieben (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 von Jogibaer0411
Geschrieben

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.

  • 2 Wochen später...
Geschrieben

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

Geschrieben
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!"

... :rolleyes:

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.

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...