Tengo un DataTable
que se completa desde una consulta SQL a una base de datos local, pero no sé cómo extraer datos de él. método Main (en el programa de prueba):¿Cómo extraigo datos de una 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();
}
El comando utilicé para crear las tablas en mi base de datos:
create table programs
(
progid int primary key identity(1,1),
name nvarchar(255),
description nvarchar(500),
iconFile nvarchar(255),
installScript nvarchar(255)
)
¿Cómo puedo extraer los datos de la DataTable
I en una forma significativa a usar?
Sé que esto es una respuesta de edad, pero no se tiene que hacer un molde en el bucle foreach para permitir la indexación? No pude hacer algo como esto hasta que cambié el código para que se pareciera a lo siguiente: foreach (fila DataRow en YourDataTable.Rows.Cast()) ... –
awh112
Comentario anterior, pero no es necesario para lanzar: 'foreach' funciona, porque' Filas' es una colección ('DataRowCollection'). Sin embargo, debe usar '.Cast()' si desea usar algunos métodos Linq ('.Where()', para un ejemplo). –
@marc_s Gracias –