Entwickler-Ecke

Datenbanken (inkl. ADO.NET) - Komplette Spalte aus der DB in einen String einlesen


IbisGER - So 08.07.18 14:41
Titel: Komplette Spalte aus der DB in einen String einlesen
Hallo zusammen,

bei meinem Programm komme ich aktuell an den Rand des Wahnsinns, es ist ein kleines Tool zum schnellen verbinden via Remotedesktop Verbindung, natürlich gib es auch Favoriten, diese werden in eine Access DB geschrieben und sollten auch aus dieser gezogen werden, allerdings finde ich keinen Weg die komplette Spalte in einem String abzulegen, es wird immer nur der erste Wert gezogen, über meinen select, im normal Fall zieht sich der Select ja die komplette Zeile.

Versucht hatte ich auch schon ein Array im String hier motzt das Visual Studio aber.

Habt Ihr noch eine Idee?

Danke IbisGER

Hier ist noch der Code:



C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
string sSelectServerNames = "Select RDP_Server from RDPClients";
//
//Bookmarks wird eingeblendet wenn DB Datei vorhanden ist
//
OleDbConnection Conn = new OleDbConnection();
Conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=TSProfileDB.mdb;Jet OLEDB:Engine Type=5";
OleDbCommand Com = new OleDbCommand(sSelectServerNames, Conn);
Conn.Open();
Com.ExecuteScalar();
string sRes = (string)Com.ExecuteScalar();
Conn.Close();

mnuStrpBtnBookmark.Visible = true;
mnuStrpBtnBookmark.DropDownItems.Add(sRes);

mnuStrpBtnBookmark.Visible = true;


Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Th69 - So 08.07.18 17:22

Du verwendest die falsche Methode (ExecuteScalar) - nutze ExecuteReader [https://msdn.microsoft.com/de-de/library/979byfca(v=vs.110).aspx] (beachte auch die im Beispiel verwendete Schleife mittels reader.Read()).


IbisGER - So 08.07.18 18:12

Danke :) habe es hinbekommen


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
//string sInsert = "Insert into RDPClients(RDP_Server, RDP_Username, RDP_Passwort) values ('" + sServer + "', '" + sUsername + "','" + sPassword + "')";

string sSelectServerNames = "Select RDP_Server from RDPClients";
//
//Bookmarks wird eingeblendet wenn DB Datei vorhanden ist
//
OleDbConnection Conn = new OleDbConnection();
Conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=TSProfileDB.mdb;Jet OLEDB:Engine Type=5";
OleDbCommand Com = new OleDbCommand(sSelectServerNames, Conn);
Conn.Open();
OleDbDataReader reader = Com.ExecuteReader();
                    
while (reader.Read())
{
    string sBookmark = reader.GetString(0);
    mnuStrpBtnBookmark.DropDownItems.Add(sBookmark);
}

reader.Close();
Conn.Close();

mnuStrpBtnBookmark.Visible = true;


Moderiert von user profile iconTh69: Code- durch C#-Tags ersetzt