J'ai un DataTable
qui est rempli à partir d'une requête SQL vers une base de données locale, mais je ne sais pas comment extraire des données de celui-ci. Méthode principale (dans le programme de test):Comment extraire des données d'un 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();
}
La commande I utilisé pour créer les tables dans ma base de données:
create table programs
(
progid int primary key identity(1,1),
name nvarchar(255),
description nvarchar(500),
iconFile nvarchar(255),
installScript nvarchar(255)
)
Comment puis-je extraire des données de la DataTable
sous une forme significative à utiliser?
Je sais que c'est une vieille réponse, mais ne vous devez faire un casting dans la boucle foreach pour permettre l'indexation? Je ne pouvais pas faire quelque chose comme ça jusqu'à ce que je changé le code pour ressembler à ce qui suit: foreach (DataRow ligne dans YourDataTable.Rows.Cast()) ... –
awh112
commentaire Même plus, mais il n'y a pas besoin lancer: 'foreach' fonctionne, car' Rows' est une collection ('DataRowCollection'). Cependant, vous devez utiliser '.Cast()' si vous voulez utiliser des méthodes Linq ('.Where()', par exemple). –
@marc_s Merci –