Entwickler-Ecke

Datenbanken (inkl. ADO.NET) - Datenbanken mit OleDb und SQL


Seomon - Di 11.09.07 19:57
Titel: Datenbanken mit OleDb und SQL
also ich hoffe ihr könnt mir ab und zu fragen beantworten ich komme bei meinem derzeitigen lehrer nicht immer mit und schreibe dann am schluss immer ab wenn ich etwas nicht verstanden habe deswegen fang ich gleich mal mit nummero 1 an:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.OleDb;
using System.Collections;

namespace Personen
{
    class DBManager
    {

        public ArrayList LesePersonen()
        {
            ArrayList array = new ArrayList();
            OleDbConnection Con = new OleDbConnection();
            Con.ConnectionString = Settings.Default.ConString;
            Con.Open();

            string SQL = "SELECT * FROM Personen";

            OleDbCommand Dat = new OleDbCommand();
            Dat.CommandText = SQL;
            Dat.Connection = Con;

            OleDbDataReader Reader = Dat.ExecuteReader();


ok bis oledbconnection con = new oledbconnection(); versteh ichs aber was passiert in den Zeilen danach was macht zb: Con.ConnectionString = Settings.Default.ConString; und wofür steht vor allem dieses Con?
dann dieses "SELECT * FROM Personen"; was passiert hier? (Person= ein Namespace)
*mich verloren fühle*

Hoffe ich bin hier richtig mit solchen fragen^^

ps: sry bin neu hier-.- werds mir bei gelegenheit mal durchlesen=)
Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
Moderiert von user profile iconChristian S.: Topic aus C# - Die Sprache verschoben am Di 11.09.2007 um 20:07


Christian S. - Di 11.09.07 20:09

Hallo,

bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien [http://www.entwickler-ecke.de/richtlinien.html]:

1.2 Beiträge:
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...]


Einfach oben bei Deinem ersten Beitrag auf user defined image oder user defined image klicken und den Titel ändern. Danke Dir!

Viele Grüße,
Christian S.


JüTho - Mi 12.09.07 09:29
Titel: Re: Datenbanken mit OleDb
user profile iconSeomon hat folgendes geschrieben:
also ich hoffe ihr könnt mir ab und zu fragen beantworten ich komme bei meinem derzeitigen lehrer nicht immer mit und schreibe dann am schluss immer ab wenn ich etwas nicht verstanden habe deswegen fang ich gleich mal mit nummero 1 an:

C#-Quelltext
1:
2:
3:
            OleDbConnection Con = new OleDbConnection();
            Con.ConnectionString = Settings.Default.ConString;
            Con.Open();

und wofür steht vor allem dieses Con?

Das lässt mich vermuten, dass Du nicht nur mit Deinem Lehrer Probleme hast, sondern grundlegende Kenntnisse zur Programmierung fehlen.

Grundsätzlich muss einem Compiler gesagt werden, dass es sich um eine Variable handelt und von welchem Typ sie ist; erst danach kann diese Variable genutzt werden. (Das wird bei den Programmiersprachen unterschiedlich streng gehandhabt, aber prinzipiell gilt dies immer.) An dieser Stelle wird Con als Variable vom Typ OleDbConnection deklariert, dann per new erzeugt, und später als Instanz dieses Typs verwendet.
user profile iconSeomon hat folgendes geschrieben:


C#-Quelltext
1:
            string SQL = "SELECT * FROM Personen";                    

dann dieses "SELECT * FROM Personen"; was passiert hier? (Person= ein Namespace)

Schon einmal etwas von SQL als "Structured Query Language", d.h. strukturierte Abfragesprache gehört? Diese hat spezielle Grundbefehle, die sich an die natürliche englische Sprache anlehnen. Beispiel: SELECT (= Auswahl) FROM (= aus), ja und woher sollen die Daten kommen? aus einer Tabelle, und diese Tabelle heißt "Personen". Das hat mit dem Namespace nichts zu tun.

Dringende Empfehlung: Kümmere Dich um solche Grundlagen. Dazu gibt es u.a. die OpenBooks bei Galileo:
OpenBook C# [http://www.galileocomputing.de/openbook/csharp/] als allgemeine Grundlage für die Sprache
OpenBook Visual C# [http://www.galileocomputing.de/openbook/visual_csharp/] mit der Benutzung von VC#, dazu in Kap. 26 die Datenbank-Verarbeitung.
Für SQL kenne ich keine entsprechende allgemeine Einführung; unter Google wirst Du vermutlich selbst fündig.

Gruß Jürgen

PS. Ich kann mir nicht vorstellen, dass Dein Lehrer mit ADO.NET anfängt, ohne dass vorher solche Grundlagen behandelt wurden (auch wenn ich schon von den seltsamsten Lehrern gehört und gelesen habe).
PS2. Hast Du vielleicht auch Probleme mit Deinen Klassenkameraden? Dort sollte es doch jemanden geben, der Dir das schneller erläutern kann.


Seomon - Mi 12.09.07 10:22

Das Problem ist das unsere Klassen auf 2 Aufgeteilt sind und da unser vorheriger Lehrer nun ein Jahr Pause nimmt wegen seinem Studium, haben wir den von der anderen Klasse bekommen. Diese waren schon um einiges weiter und er setzt vieles was in der anderen Klasse gemacht wurde voraus.
naja eine Kollegin ist unserem Stoff schon Meilen voraus, schreibt Programme für die Schule-.- und erklärt mir in der wenigen Zeit die wir haben auch mal was.
Der einzige andere der mir helfen könnte is ziemlich unfreundlich und dem kann ich einfach nicht ab wie du dir vl vorstellen kannst, der rest ist faul oder kennt sich noch weniger aus als ich.
Y ich hab mich ein bisschen informiert seit ich das gepostet habe. die einfachen Sachen die ich hier verwende habe ich gefunden und versteh sie auch halbwegs.



Ich kann dir gar nich sagen wie du mir geholfen hast, dickes DANKE auf jeden fall auch für die Lektüre^^
Ich hoffe ich falle dir nicht zu sehr auf die Nerven wenn ich mich wieder einmal mit etwas mir unverständlichen melde.

und ach ja, ich kenne mich mit Datenbanken überhaupt nicht gut aus:(

ps: bin grad drauf gekommen vor 10 minuten hat mir meine kollegin genau den selben link gegeben:D trotzdem danke=)


ffgorcky - So 14.03.10 21:16

Hallo liebes Forum,
ich habe gerade versucht, durch kopieren und abwandeln des Erstbeitrags dieses Threads auch eine Abfrage hinzubekommen.
Aber der Compiler sagt mir: Der Name "Settings" ist im aktuellen Kontext nicht vorhanden".

Also wie muss ich den denn dazu Konstruieren?
Hier mal mein momentaner Versuch, wo er die Meldung bringt:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
        public void fuegeEineNeuePersonHinzu(string Name, decimal alter, bool geschlecht)
        {
            string sAlter = i16.ConvertToString(alter);
            comboBoxPersonenAuswahl.Items.Add(Name);
            comboBoxPersonenAuswahl.SelectedIndex = comboBoxPersonenAuswahl.Items.Count-1;
            //SQL-Befehls-Script:
            OleDbConnection Con = new OleDbConnection();
            Con.ConnectionString = Settings.Default.ConString;
            Con.Open();
            string SQL = "INSERT Name="+Name+" Alter="+alter+" Geschlecht="+geschlecht+" TO 

Personen"
;
            OleDbCommand Dat = new OleDbCommand();
            Dat.CommandText = SQL;
            Dat.Connection = Con;
            OleDbDataReader Reader = Dat.ExecuteReader(); 
        }

PS: Man sieht warscheinlich, dass ich das auch durch den Unfall 2006 wieder so ziemlich vergessen habe, aber ich möchte mich hier genauso wieder einarbeiten wie in Delphi.
PS2: Ja, ich weiß - eigentlich neue Frage neuer Thread, aber wie ich ja geschrieben habe, habe ich ja den Erstbeitrag kopiert. Na gut - so hätte ich ja hierauf einen Link setzten können.


JüTho - So 14.03.10 21:32

Hallo Ronald,

wenn du in der SDK-Doku/MSDN/Hilfe das Stichwort Settings angibst, stellst du fest, dass es das u.a. unter AppSettingsSection gibt. Es ist ein sinnvolles Verfahren, einen ConnectionString in der app.config zu speichern; auf diese Weise kann der Wert eingelesen und im Programm benutzt werden.

Mit dem ursprünglichen Code hast du zwangsläufig das Problem, dass dort nichts dazu gesagt wird, woher Settings geholt wird. Ich schlage deshalb vor, dass du den Wert nach der SDK-Doku mit einem der Beispiele aus System.Configuration einliest und an der betreffenden Stelle verwendet.

Gruß Jürgen


ffgorcky - Mo 15.03.10 10:57

Danke Jürgen, dass Du versuchst mir weiterzuhelfen,

aber irgendwie gibt er mir bei der Suche nach "Settings" in der Hilfe nichts vernünftiges zurück und damit verstehe ich das leider noch nicht so ganz.
Und ich weiß leider auch nicht, wo ich die SoftwareDeveloperKit-Doku und das MicrosoftDeveloperNetwork finde. - Oder habe ich Deine Abkürzungen jetzt falsch übersetzt?
Könntest Du mir diese Dinge denn mal verlinken?
Oder noch schöner wäre natürlich, wenn Du mir das hier direkt und Plausibel an einem Beispiel erklären könntest.


JüTho - Mo 15.03.10 11:20

Siehe dort [http://www.c-sharp-forum.de/viewtopic.php?p=585415#585415], da habe ich es schon einmal erläutert. Jürgen