it may seem to be simple problem to many of you, but want i am trying to do is i am reading a text file on a click event using StreamReader
(ASP.net & C#) after
How about something like this:
protected void readfile_Click(object sender, EventArgs e)
{
DataTable table = new DataTable();
table.Columns.Add("Row No.");
table.Columns.Add("Col No.");
table.Columns.Add("Width");
table.Columns.Add("Height");
table.Columns.Add("Image URL");
table.Columns.Add("Description");
using (StreamReader sr = new StreamReader(@"D:\Temp\fileread\readtext.txt"))
{
while (!sr.EndOfStream)
{
string[] parts = sr.ReadLine().Split(',');
table.Rows.Add(parts[0], parts[1], parts[2], parts[3], parts[4], parts[5]);
}
}
MyGridView.DataSource = table;
MyGridView.DataBind();
}
Add columns to datatable using code below
DataTable dt = new DataTable();
dt.Columns.Add("Row No", typeof(Int32));
dt.Columns.Add("Col No", typeof(Int32));
dt.Columns.Add("Width", typeof(Int32));
dt.Columns.Add("Height", typeof(Int32));
dt.Columns.Add("ImageUrl", typeof(String));
dt.Columns.Add("Description", typeof(String));
And bind datatable (dt) after you populate all rows in datatable, after while loop
using (StreamReader sr = new StreamReader(@"D:\Temp\fileread\readtext.txt"))
{
while ((line = sr.ReadLine()) != null)
{
string[] parts = line.Split(',');
var dr = dt.NewRow(); //use newrow to create new row
for (int i = 0; i < parts.Length; i++)
{
dr[i] = parts[i];
}
dt.Rows.Add(dr); //add row to datatable now
}
sr.Close();
}
//bind datatable to Gridview after we load file into dt
MyGridView.DataSource = dt;
MyGridView.DataBind();
for
-loopDataRow
using DataTable.NewRow methodYour code should be something like this:
DataTable dt = new DataTable();
dt.Columns.Add("Row No", typeof(Int32));
dt.Columns.Add("Col No", typeof(Int32));
dt.Columns.Add("Width", typeof(Int32));
dt.Columns.Add("Height", typeof(Int32));
dt.Columns.Add("ImageUrl", typeof(String));
dt.Columns.Add("Description", typeof(String));
using (StreamReader sr = new StreamReader(@"D:\Temp\fileread\readtext.txt"))
{
while ((line = sr.ReadLine()) != null)
{
string[] parts = line.Split(',');
var row = dt.NewRow();
for (int i = 0; i < parts.Length; i++)
{
row[i] = parts[i];
}
// important thing!
dt.Rows.Add(row);
}
sr.Close();
}
MyGridView.DataSource = dt;
MyGridView.DataBind();