Laden...

ADO.NET: Wie gehe ich mit Datenbank im Projekt um?

Erstellt von frankhammer vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.198 Views
frankhammer Themenstarter:in
42 Beiträge seit 2009
vor 14 Jahren
ADO.NET: Wie gehe ich mit Datenbank im Projekt um?

verwendetes Datenbanksystem: SQL Server 2005

Hallo,

ich versuche mich schon den ganzen Tag in ADO.NET einzuarbeiten. Ich weiss aber immer noch nicht ganz so genau, wie ich mit meinen erstellen Datenbanken im Projekt umzugehen habe. Ich erstelle ja automatische eine DataSet mit der Endung .xsd, wenn ich eine Datenbank in mein Projekt einbinde. Wofür ist dieses automatisch generierte DataSet da? Was macht es? Kann ich es irgendwie für meine Zwecke (Suchen in DB, Löschen, Update) benutzen? Dann ist mir immer noch nicht ganz klar, wie ich vernünftig eine Connection zu meiner Datenbank aufbaue. Meine Code sieht im Moment so aus.

            SqlConnectionStringBuilder connectionBuilder = new SqlConnectionStringBuilder();
            //connectionBuilder.AttachDBFilename = Application.StartupPath + "\\Files.mdf";
            connectionBuilder.DataSource = "localhost\\SQLEXPRESS";
            connectionBuilder.IntegratedSecurity = true;
            connectionBuilder.InitialCatalog = "Files";

            SqlConnection connection = new SqlConnection(connectionBuilder.ConnectionString);
            SqlCommand command = new SqlCommand("Select * from Files", connection);
            SqlDataAdapter adapter = new SqlDataAdapter(command);
            SqlCommandBuilder commandbuilder = new SqlCommandBuilder(adapter);

            DataSet ds = new DataSet();

            int anzahl = 0;

            connection.Open();
            anzahl = adapter.Fill(ds);
            connection.Close();


            ds.Tables[0].Clear();
            connection.Open();
            anzahl = adapter.Update(ds);
            connection.Close();

Diese Anweisung soll einfach nur die Tabelle Files löschen. In wie weit kann ich sowas dann auch per SQL machen? Denn die anweisung "DELETE FROM Files" wäre wesentlich kürzer.

Es geht mir hauptsächlich um das Arbeiten mit Datenbank die im Projekt bzw. Solution-File eingebunden sind. Denn ich bekomme auch öfter dann mal die Meldung, dass der Login schief geht. (obwohl IntegradetSecurity=true und es klappen müsste)

Gruß,

frankhammer

Gelöschter Account
vor 14 Jahren

siehe: Datenbank Workshop

wenn du nur eine tabelle löschen willst (oder zumindest nur deren inhalt) dann brauchst du kein dataset.

frankhammer Themenstarter:in
42 Beiträge seit 2009
vor 14 Jahren

siehe:
>

Das habe ich bereits durchgelesen... Okay ich kann also einfach nur die SQL Anweisung ausführen, aber trotzdem bekomme ich immer bei sowas ein Login failed....

Gelöschter Account
vor 14 Jahren

dann passt dein connectionstring nicht.

195 Beiträge seit 2006
vor 14 Jahren

Müüste es nicht:


connectionBuilder.DataSource = ".\\SQLEXPRESS";

anstatt


connectionBuilder.DataSource = "localhost\\SQLEXPRESS";

sein?

3.822 Beiträge seit 2006
vor 14 Jahren

Hallo Frank,

die erste Verbindung zu Deiner Datenbank unbedingt mit dem SQL Management Studio aufbauen. Steht auch so in meinem Workshop.

Zur Übung könntest Du die Daten auch im Dataset löschen. Das geht so :


// ds.Tables[0].Clear(); falsch
foreach(DataRow rw in ds.Tables[0].Rows)
    rw.Delete();

JAck30lena : Danke 😉

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

5.299 Beiträge seit 2008
vor 14 Jahren

Auf Movie-Tuts gibtsn paar Tuts, die zeigen, was man mittm typisierten Dataset so anstellen kann, und wie mit den Wizzards arbeiten.

Der frühe Apfel fängt den Wurm.