LINQ to CSV : Getting data the way you want
Getting data from CSV is one of the mostly used business in applications/tools development.
Here how we can do it in LINQ,
You have a table called Emp with the below details,
CREATE TABLE [dbo].[Emp](
[Id] [int] IDENTITY(1,1) NOT NULL,
[FirstName] [varchar](50) NOT NULL,
[LastName] [varchar](50) NULL,
CONSTRAINT [PK_Emp] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Now you may want to get the CSV out of it. To do that you can save the query output to a .csv file.
The contents of that csv would look like,
1,Wriju,Ghosh
10,Writam,Ghosh
11,Debajyoti,Ghosh
12,Sumitra,Ghosh
82,Tupur,Sanyal
So when you get a single line you can Split() them with a comma (,). The code is very simple,
string[] allLines = File.ReadAllLines(@"E:\Temp\Emp.csv");
var query = from line in allLines
let data = line.Split(',')
select new
{
ID = data[0],
FirstName = data[1],
LastName = data[2]
};
foreach (var s in query)
{
Console.WriteLine("[{0}] {1} {2}", s.ID, s.FirstName, s.LastName);
}
Namoskar!!!