Ich habe eine DataTable
, die aus einer SQL-Abfrage in eine lokale Datenbank ausgefüllt wird, aber ich weiß nicht, wie Sie Daten daraus extrahieren. Main-Methode (Testprogramm):Wie extrahiere ich Daten aus einer DataTable?
static void Main(string[] args)
{
const string connectionString = "server=localhost\\SQLExpress;database=master;integrated Security=SSPI;";
DataTable table = new DataTable("allPrograms");
using (var conn = new SqlConnection(connectionString))
{
Console.WriteLine("connection created successfuly");
string command = "SELECT * FROM Programs";
using (var cmd = new SqlCommand(command, conn))
{
Console.WriteLine("command created successfuly");
SqlDataAdapter adapt = new SqlDataAdapter(cmd);
conn.Open();
Console.WriteLine("connection opened successfuly");
adapt.Fill(table);
conn.Close();
Console.WriteLine("connection closed successfuly");
}
}
Console.Read();
}
Der Befehl, den ich die Tabellen in der Datenbank zu erstellen:
create table programs
(
progid int primary key identity(1,1),
name nvarchar(255),
description nvarchar(500),
iconFile nvarchar(255),
installScript nvarchar(255)
)
Wie kann ich extrahieren Daten aus dem DataTable
in eine Form sinnvoll zu nutzen?
Ich weiß, das ist eine alte Antwort, aber nicht Sie brauchen eine Besetzung in der foreach-Schleife zu tun Indizierung zu ermöglichen? Ich war nicht in der Lage, so etwas zu tun, bis ich den Code geändert wie folgt aussehen: foreach (DataRow Reihe in YourDataTable.Rows.Cast()) ... –
awh112
Auch älterer Kommentar, aber es gibt keine Notwendigkeit um zu wirken: 'foreach' funktioniert, weil' Rows' eine Sammlung ist ('DataRowCollection'). Allerdings müssen Sie '.Cast()' verwenden, wenn Sie einige Linq-Methoden ('.Where()', für ein Beispiel) verwenden möchten. –
@marc_s Danke –