Autor Beitrag
Corsarou
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Mi 20.10.10 11:38 
hallo!

ich hab folgendes problem...
...ich hab eine access datenbank mit einer tabelle VORSPEISE. und da drin hab ich die spalten:

ID - Name
1 - Suppe
2 - Tee
. - .
. - .
. - .

ich möchte den inhalt von der spalte Name in mein programm als checkbox ausgeben. also:
□Suppe
□Tee
□usw.

wie mache ich das? bitte helfts mir!
dank :)

mfg
Corsarou


Moderiert von user profile iconKha: Topic aus C# - Die Sprache verschoben am Mi 27.10.2010 um 19:41
Corsarou Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 26.10.10 20:23 
kann mir keiner helfen? bitte, es ist sehr dringend!!!
Trashkid2000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 561
Erhaltene Danke: 137



BeitragVerfasst: Di 26.10.10 21:09 
Hi,

also, Du kannst per OleDb auf Deine Access-Datenbank zugreifen.
Der ConnectionString würde dann wie folgt aussehen:
ausblenden Quelltext
1:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=DER SPEICHERORT DER DATENBANKDATEI;Persist Security Info=false					

Wenn die Db spezielle Authentifizierung (username, Password) benötigt, so musst Du diese Informationen natürlich auch in den ConnectionString packen.

So, mit diesem ConnectionString erstellst Du eine OleDbConnection, jagst dann einen OleDbCommand auf die Datenbank und liest die Daten mit einem OleDbDataReader.
Das Ganze würde dann so aussehen:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
using (OleDbCommand cmd = new OleDbCommand("Select Name from VORSPEISE", conn))
{
  using (OleDbDataReader reader = cmd.ExecuteReader())
  {
    int fieldOrdinal = reader.GetOrdinal("Name");
    string fieldValue = null;
    while (reader.Read())
    {
      if (!reader.IsDBNull(fieldOrdinal))
      {
        fieldValue = reader.GetString(fieldOrdinal);  
        //ergeuge eine CheckBox mit dem FieldValue  
      }
    }    
  }
}
Aber mal ganz ehrlich, über Google findet man da echt übelst viele Beispiele.

//edit: wenn Du nur die Spalte "Name" abfragst, ist das mit mit dem fieldOrdinal naturlich Quatsch, denn der Wert ist dann immer 0. Wichtig nur, wenn Du mehrere Spalten abfragst!

LG, Marko

Für diesen Beitrag haben gedankt: Corsarou
Corsarou Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 26.10.10 22:08 
wow, danke für die rasche antwort!

mal sehn ob ichs hinbekomm :D
Corsarou Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 26.10.10 22:25 
hab vergessen zu erwähnen dass mein programm in der wpf anwendung geschrieben wird ^^
Corsarou Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 26.10.10 23:06 
user profile iconTrashkid2000 hat folgendes geschrieben Zum zitierten Posting springen:
Hi,

also, Du kannst per OleDb auf Deine Access-Datenbank zugreifen.
Der ConnectionString würde dann wie folgt aussehen:
ausblenden Quelltext
1:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=DER SPEICHERORT DER DATENBANKDATEI;Persist Security Info=false					

Wenn die Db spezielle Authentifizierung (username, Password) benötigt, so musst Du diese Informationen natürlich auch in den ConnectionString packen.

So, mit diesem ConnectionString erstellst Du eine OleDbConnection, jagst dann einen OleDbCommand auf die Datenbank und liest die Daten mit einem OleDbDataReader.
Das Ganze würde dann so aussehen:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
using (OleDbCommand cmd = new OleDbCommand("Select Name from VORSPEISE", conn))
{
  using (OleDbDataReader reader = cmd.ExecuteReader())
  {
    int fieldOrdinal = reader.GetOrdinal("Name");
    string fieldValue = null;
    while (reader.Read())
    {
      if (!reader.IsDBNull(fieldOrdinal))
      {
        fieldValue = reader.GetString(fieldOrdinal);  
        //ergeuge eine CheckBox mit dem FieldValue  
      }
    }    
  }
}
Aber mal ganz ehrlich, über Google findet man da echt übelst viele Beispiele.

//edit: wenn Du nur die Spalte "Name" abfragst, ist das mit mit dem fieldOrdinal naturlich Quatsch, denn der Wert ist dann immer 0. Wichtig nur, wenn Du mehrere Spalten abfragst!

LG, Marko


also ich hab das mal kopiert und in nem button eingefügt. aber er makiert mir Provider, Jet, 4.0, Data Source, Persist und Info rot.
ausblenden Quelltext
1:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=DER SPEICHERORT DER DATENBANKDATEI;Persist Security Info=false					


und beim rest makiert er mir OleDbCommand und OleDbDataReader rot.

hilfe :/
Christoph1972
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 690
Erhaltene Danke: 16


VS2015 Pro / C# & VB.Net
BeitragVerfasst: Mi 27.10.10 06:53 
und beim rest makiert er mir OleDbCommand und OleDbDataReader rot.

Es fehlen die Verweise auf diese Klassen. Die musst du natürlich setzen.

_________________
Gruß
Christoph
Trashkid2000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 561
Erhaltene Danke: 137



BeitragVerfasst: Mi 27.10.10 06:53 
Hi,

das war natürlich nicht der gesamte Code, sondern nur ein Ausschnitt. Um mal ein paar Stichworte zu nennen, die Dich vielleicht bei Deiner Suche weiterbringen. Denn ein bisschen sollst Du ja auch selber machen.

Wie schon mal geschrieben, ist der ConnectionString dazu, eine OleDbConnection aufzubauen.
Also so:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\TestDB.mdb;Persist Security Info=false";
using (OleDbConnection conn = new OleDbConnection(connectionString))
{
  conn.Open();
  using (OleDbCommand cmd = new OleDbCommand("Select Name from VORSPEISE", conn))
  {
    //...
  }
}

user profile iconCorsarou hat folgendes geschrieben Zum zitierten Posting springen:
und beim rest makiert er mir OleDbCommand und OleDbDataReader rot.

Ja, weil bestimmt der Namespace nicht eingebunden ist:
ausblenden C#-Quelltext
1:
using System.Data.OleDb;					


Dass es eine WPF-Anwendung werden soll, ist erstmal egal, das ist nur für die Anzeige der Daten später wichtig. Und bis dahin ist es (glaube ich jedenfalls zu wissen) für Dich noch ein langer Weg.

LG, Marko

Für diesen Beitrag haben gedankt: Corsarou
Corsarou Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Mi 27.10.10 10:13 
danke für die hilfe! :)
vielleicht ist es viel verlangt, aber kennst du/kennt ihr eine seite/tutorial bezüglich datenbanken und access?

lg corsarou
Trashkid2000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 561
Erhaltene Danke: 137



BeitragVerfasst: Mi 27.10.10 10:44 
Hi,

Tutorials bzw. Beispiele sind sehr viele über Google zu finden:
lmgtfy.com/?q=c%23+access+oledb

LG, Marko

Für diesen Beitrag haben gedankt: Corsarou