Laden...

datenbanken anbindung

Erstellt von *neo* vor 17 Jahren Letzter Beitrag vor 17 Jahren 2.151 Views
*
*neo* Themenstarter:in
299 Beiträge seit 2006
vor 17 Jahren
datenbanken anbindung

hallo,

ich möchte gerne eine datenbank in meiner c# applikation verwenden. doch leider habe ich keine ahnung davon. ich kenne sql befehle, aber wie ich das in der ide anstelle weiß ich nicht. die forensuche enthält viel zu viele ergebnisse, dass der überblick fehlt. also deshalb meine frage:

  • welche gui-/-elemente benötige ich?
  • wo setzte ich die datenbank auf?
  • die daten sollen später in verschiedenen darstellungen erscheinen z.b Listview, listbox usw.
  • wie kommt der kontakt zu stande?

danke

mfg

D
496 Beiträge seit 2005
vor 17 Jahren

kuck dir mal ado.net an da findest du alles was du brauchst

"Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life."

*
*neo* Themenstarter:in
299 Beiträge seit 2006
vor 17 Jahren

hi,

mal dumm gefragt X( wo finde ich die?

gruß

P
157 Beiträge seit 2006
vor 17 Jahren

Am besten einfach mal ein Buch durcharbeiten das diese Themen behandelt. Man kann das nicht in 1-2 Sätzen hier im Forum abarbeiten zumal man sich die Grundlagen eh selbst aneignen muss.

Beispielecode gibt es im Netz übrigens auch eine Menge -> Google.

Vielleicht hilft dieses Kapitel ja zu Beginn:

Visual C# 2005 - ADO.NET

Gruß
purplestar

*
*neo* Themenstarter:in
299 Beiträge seit 2006
vor 17 Jahren

hallo,

werde mir den link mal anschauen. bei google weiß ich halt nicht nach was ich genau suchen muss. ich hatte mit ein tutorial erhofft.

gruß

P
157 Beiträge seit 2006
vor 17 Jahren

Original von neo
hallo,

werde mir den link mal anschauen. bei google weiß ich halt nicht nach was ich genau suchen muss. ich hatte mit ein tutorial erhofft.

gruß

hm? na dann gib' das mal ein:

c# tutorial ado.net

..mein Google bekommt da einiges zurück.

😉

L
497 Beiträge seit 2006
vor 17 Jahren

Mit ADO.NET hast Du ja jetzt einen Suchbegriff. Weitere wären .NET und Datenbanken oder auch Datenbankzugriff mit .NET - so viel Kreativität sollte schon drin sein. Bei google helfen natürlich oft auch die englischen Pendants

Sarkusmus ist, wenn nichts mehr hilft, außer Lachen.

D
496 Beiträge seit 2005
vor 17 Jahren

"Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life."

*
*neo* Themenstarter:in
299 Beiträge seit 2006
vor 17 Jahren

hallo,

danke hat alles bisher geklappt. verbindung steht und daten konnte ich bisher auch schon auslesen.

ich habe aber dennoch ein frage:

ich habe mir eine liste erstellt
List<String> questionDatabaseResult = new List<String>();

diese soll die daten aus der auswertung von datenbank entgeben nehmen.
wenn ich z.b folgende anfrage ausführe:
select * from userdata where password = 'test'

möchte ich ja eigentlich das alle daten (alle inhalte der spalten) in eine liste eingelesen werden.
wie kann ich der liste beibringen das sie sich wie eine strukture verhalten soll. also pro datensatz name und passwort aufnimmt.

weil ansich werden alle datensätze gefunden die mit dem passwort test hinterlegt sind, aber es werden immer nur das passwort in der liste gespeichert und nicht noch der user!

gruß

*
*neo* Themenstarter:in
299 Beiträge seit 2006
vor 17 Jahren

hallo,

wie kann ich denn durch den reader herausfinden wie viele spalten ich auslese??
dei andere frage scheint zu umständnlich formuliert!

gruß

B
75 Beiträge seit 2006
vor 17 Jahren

Original von neo

wie kann ich denn durch den reader herausfinden wie viele spalten ich auslese??
gruß

Ist zwar nicht 100%ig aber fürn anfang wird es wohl reichen


    int getLines()
    {
        DBLayer db = new DBLayer();
        SqlConnection con = db.get_sqlconnection();
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = con;
        cmd.CommandTimeout = 750;
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.CommandText = "employee_read";
        SqlDataReader dr = null;
        try
        {
            dr = cmd.ExecuteReader();
        }
        catch (Exception ex)
        {
            throw ex;
        }
        int z = 0;
        while (dr.Read())
        {
            z++;
        }
        dr.Close();
        db.close();
        return z;
    }

sollte meiner meinung nach funktionieren!! es gibt auch sicher noch einfachere möglichkeiten aber die habe ich besher genutzt!!

T
68 Beiträge seit 2006
vor 17 Jahren

Hi

wie kann ich denn durch den reader herausfinden wie viele spalten ich auslese??

Also alle Metinformationen findest du beim reader durch

reader.GetSchema()

das ist eine Datatable gefüllt mit lauter metainformationen

So und wieviel Saplten eine gesuchte Tabelle hat findest du glaub ich ungefähr so
ganz genau weiß ich es nicht mehr aber ich dürfte sehr knaapp dran sein

reader.GetSchema().Rows.Count

Zumindest lese ich mit folgenden Code die Beschriftungen / spalten bezeichnungne einer tabelle aus:


foreach (DataRow header in reader.getSchema().Rows)
{
                    newTable.Columns.Add(header.ItemArray[0].ToString());
}

mfg TiTime

*
*neo* Themenstarter:in
299 Beiträge seit 2006
vor 17 Jahren

hallo ttime,

danke, das war ne antwort! mit kleinen beispielen, so macht das spass!!

vieln dank!

aber wie kommt man auf die unterfunktionen

reader.GetSchema().Rows.Count

wo her was man das getschema() noch die eigenschaften enthält?
aus der doku!
manchmal weiß man aber garnicht was man sucht!

gruß

T
68 Beiträge seit 2006
vor 17 Jahren

Hallo neo!

Freut mich das ich dir helfen konnte 👍 Und danke für das Lob 😁

Also eine gute Doku über getSchema() hab ich bislang leider auch nicht gefunden!
Wird es sicher wo geben aber alle google hits abzuarbeiten war mir dann doch zu mühsam. Einiges ist in der Msdn zu finden, die allerdings am anfang etwas irreführend ist und man eigenltich nicht das erhält was man braucht.

Wie man auf alles kommt. hmm Du wirst lachen aber ich hab es so gemacht.


Datatable schematab = reader.GetSchema();
// da irgendwas halt wo man dann einen breakpoint draufsetzten kann 
//z.B.: int i = 0;

so bei int i = 0; hab ich dann einen Breakpoint gesetzt. und debuggt. An diesem Punkt angekommen hab ich dann in der Watchlist die schematab aufgeklappt und habs durchgearbeitet wo welche informationen stehen. Und das ist kein Scherz 8o

Da bin ich halt draufgekommen, dass unter columns die ganzen einstellungen zu einer Tabelle stehen(z.b. wie lang ein feld ist, welche nullwerte erlaub etc.) und unter rows hab ich dann die spalten namen gefunden.

Mühsam aber jetzt weiß ich wenigstens was mir getSchema() liefert.
Nach dieser art mach ich es immer wenn ich nicht exakt weiß was mir das jeweilige liefert. 😉

Wie gesagt einen "schnelleren" Weg hab ich leider bislang nicht gefunden.

Schöne Grüße TiTime

L
497 Beiträge seit 2006
vor 17 Jahren

Original von TiTime
Wie gesagt einen "schnelleren" Weg hab ich leider bislang nicht gefunden.

Ist natürlich eine Möglichkeit, aber warum benutzt Du nicht IntelliSense?

Sarkusmus ist, wenn nichts mehr hilft, außer Lachen.