verwendetes Datenbanksystem: SQL
Hallo,
bin recht neu in Sachen C# und Sql... daher meine Frage,
wie mache ich ein einfaches SELECT * FROM table und gebe dieses Ergebnis in ein Array um damit weiter zu arbeiten?
also soweit bin ich nun:
DataTable GlobalTable = new DataTable();
SqlCommand Query = new SqlCommand();
Query.Connection = Connection;
try
{
Query.CommandText = "SELECT * FROM kunden where position=id";
GlobalTable.Clear();
GlobalTable.Load(Query.ExecuteReader());
}
catch
{
}
so nun denke ich, dass ich meine SQL-Daten in einer Globalen Tabelle habe...
Tabelle würde demnach so aussehen
[id][name][vorname][strasse][plz]
1-Mustermann-Max-Musterstrasse 12-12345
Wie würde ich jetzt z.B.: string name = Mustermann; setzen können?
Vielen Dank für eure Hilfe!
Wenn Du eine DataTable als Rückgabewert hast, kannst Du über die Columns Indexe, oder Namen auf die von Dir gewünschte Spalte zugreifen.
Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt
Okey, das habe ich soweit verstanden
Nun bekomme ich allerdings immer nur die column namen heraus, wie bekomme ich denn nun die werte?
MessageBox.Show(GlobalTable.Columns[1].ToString());
So bekomme ich lediglich "name" ausgegeben aber keine Werte...
Vielen Dank!
Geht nicht, sobald ich .rows[0] mache, geht kein cells mehr...
Fehler 1 "System.Data.DataRow" enthält keine Definition für "Cell", und es konnte keine Erweiterungsmethode "Cell" gefunden werden, die ein erstes Argument vom Typ "System.Data.DataRow" akzeptiert. (Fehlt eine Using-Direktive oder ein Assemblyverweis?)
Klasse Community danke sehr!
Was mache ich falsch?
try{
for (int i = 0; i <= laenge_array ; i++)
{
string listeNummer = liste[i].Trim().ToString();
Query.CommandText = "SELECT name FROM liste where id=listeNummer";
GlobalTable.Clear();
GlobalTable.Load(Query.ExecuteReader());
auswahlliste.Items.Add(GlobalTable.Rows[0][0]);
MessageBox.Show(GlobalTable.Rows[0][0].ToString());
}
}
catch
{
Messagebox.Show("Geht nicht");
}
Der srpingt beim ersten durchgang direkt raus und holt mir nichts aus der Datenbank...
Würde drauf tippen da ja listeNummer ein string ist und du in einem
SQL - Statement um einen 'string' Hochkommata setzen musst.
Kopier dir doch einfach das Statement raus und teste es als SQL - Sript im Sql Management Studio deines Slq Servers.
Ich kann auch total falsch liegen 😉
da kubi.
leider lag es nicht daran... vielleicht noch einen vorschlag?
Ich benutze vorher schonmal die globaltable, dass kann daran aber nicht liegen, weil ich sie doch wieder mit clear() leer mache oder?
alles klar fehler gefunden ;D
Query.CommandText = "SELECT name FROM liste where id="+ listenummer + "";
Query.CommandText = "SELECT name FROM liste where id="+ listenummer + ""; Stichwort SQL Injection
Schau Dir SqlCommand.::.Parameters-Eigenschaft mal an.
Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt
Und evtl mal ExecuteScalar.
Ok alles Klaro, Vielen DanK!