Click here to Skip to main content
15,895,667 members
Articles / Programming Languages / SQL

Tips for LINQ: Fill any generic List from a DataTable

Rate me:
Please Sign up or sign in to vote.
4.26/5 (10 votes)
3 Mar 2009CPOL2 min read 86.1K   497   41  
This article shows how to populate any generic list from a DataTable.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace FromDataTableToGenericListExample
{
    public class TestExample
    {
        public void StartExample()
        {
            string servername = "MYPC\\SQLDES";
            string dabasename = "test";
            string user = "myuser";
            string password = "mypass";

            List<Employee> Employees = null;
            List<Client> Clients = null;
            DataTable dEmployees = new DataTable();
            DataTable dClients = new DataTable();
            
            //Connect to the database
            if (SqlDataBase.Connect(servername, dabasename, user, password) == true)
            {
                //Get the first DataTable
                string sqlEmployees = "SELECT NAME,DEPARTMENT,SALARY FROM EMPLOYEES";
                dEmployees = SqlDataBase.ReturnDataTable(sqlEmployees);

                //Fill the first generic List with the DataTable values
                DataFiller<Employee> dtfEmployee = new DataFiller<Employee>();
                Employees= dtfEmployee.FromDataTableToList(dEmployees);

                //Get another DataTable
                string sqlClients = "SELECT ID,NAME,COUNTRY,ADDRESS FROM CLIENTS";
                dClients = SqlDataBase.ReturnDataTable(sqlClients);

                //Fill another generic List with the DataTable values
                DataFiller<Client> dtfClient = new DataFiller<Client>();
                Clients = dtfClient.FromDataTableToList(dClients);

                //Disconnect
                SqlDataBase.Disconnect();
            }

            //Linq Dummy Example
            Employee employee = (from e in Employees
                    where e.Name == "Mary"
                    select e).First();

            Console.WriteLine("The salary is: " + employee.Salary.ToString());

            Client client = (from c in Clients
                             where c.Country == "Polony"
                             select c).First();

            Console.WriteLine("The name is: " + client.Name.ToString());
        }
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer
Spain Spain
I´ve been working with Oracle, Sql Server and Visual Basic 6 since 2003 and with C# since 2006. Now I´m fighting with Biztalk 2006 too...

MCTS - .NET Framework 4, Windows Applications
MCTS - Accessing Data with .NET Framework 4

Comments and Discussions