Thursday 15 March 2012

ADDING IMAGE COLUMN TO DATA TABLE & DATA GRID VIEW

DataTable dtMain = null;

dtMain = new DataTable();
dtMain.Columns.Add("CustomerID");
dtMain.Columns.Add("CustomerName");
dtMain.Columns.Add("ImageColumn", typeof(Image));

string photopath = Application.StartupPath + @"\images\";

dtMain.Rows.Add("GH-456", "Kenny Margaret", Image.FromFile(photopath + "1.jpg"));
dtMain.Rows.Add("HQ-450", "Cinderella", Image.FromFile(photopath + "2.jpg"));
dtMain.Rows.Add("KN-840", "Jonathan Brandis", Image.FromFile(photopath + "3.jpg"));
dtMain.Rows.Add("JI-129", "Michael Hardy", Image.FromFile(photopath + "4.jpg"));
dtMain.Rows.Add("GE-639", "Joseph Stalin", Image.FromFile(photopath + "5.jpg"));
dataGridViewMain.DataSource = dtMain; // Adding datatable to datagridview

download full source code. Click download



ADDING IMAGE BUTTON COLUMN TO DATA GRID VIEW

      dtMain = new DataTable();
      dtMain.Columns.Add("CustomerID");
      dtMain.Columns.Add("CustomerName");
      dtMain.Columns.Add("ImageColumn", typeof(Image));
     
      string photopath = Application.StartupPath + @"\images\";

      dtMain.Rows.Add("GH-456", "Kenny Margaret", Image.FromFile(photopath + "1.jpg"));
      dtMain.Rows.Add("HQ-450", "Cinderella", Image.FromFile(photopath + "2.jpg"));
      dtMain.Rows.Add("KN-840", "Jonathan Brandis", Image.FromFile(photopath + "3.jpg"));
      dtMain.Rows.Add("JI-129", "Michael Hardy", Image.FromFile(photopath + "4.jpg"));
      dtMain.Rows.Add("GE-639", "Joseph Stalin", Image.FromFile(photopath + "5.jpg"));
      dataGridViewMain.DataSource = dtMain;

      On event dataGridViewMain_CellContentClick
      write following code

  
      if (e.ColumnIndex == dataGridViewMain.Columns["ImageColumn"].Index)
      {
      lblShowCellData.Text = dataGridViewMain.Rows[e.RowIndex].Cells["CustomerName"].Value.ToString();
      // Do some thing else....
      }

Now click on Image column at right and you will see customer name getting displayed in label lblShowCellData

download full source code. Click download


REMOVE DUPLICATE ROW ENTRIES IN DATATABLE & DATAGRID VIEW

dtMain = new DataTable();
dtMain.Columns.Add("CustomerID");
dtMain.Columns.Add("CustomerName");
dtMain.Columns.Add("ImageColumn", typeof(Image));

string photopath = Application.StartupPath + @"\images\";

dtMain.Rows.Add("GH-456", "Kenny Margaret", Image.FromFile(photopath + "1.jpg"));
dtMain.Rows.Add("HQ-450", "Cinderella", Image.FromFile(photopath + "2.jpg"));
dtMain.Rows.Add("KN-840", "Jonathan Brandis", Image.FromFile(photopath + "3.jpg"));
dtMain.Rows.Add("JI-129", "Michael Hardy", Image.FromFile(photopath + "4.jpg"));
dtMain.Rows.Add("GE-639", "Joseph Stalin", Image.FromFile(photopath + "5.jpg"));

dtMain.Rows.Add("GH-456", "Kenny Margaret", Image.FromFile(photopath + "1.jpg"));
dtMain.Rows.Add("HQ-450", "Cinderella", Image.FromFile(photopath + "2.jpg"));
dtMain.Rows.Add("KN-840", "Jonathan Brandis", Image.FromFile(photopath + "3.jpg"));
dtMain.Rows.Add("JI-129", "Michael Hardy", Image.FromFile(photopath + "4.jpg"));
dtMain.Rows.Add("GE-639", "Joseph Stalin", Image.FromFile(photopath + "5.jpg"));

dataGridViewMain.DataSource = dtMain;

Now create a button and on its click event write following code :

dtNoDuplicated = dtMain.Copy();
dtNoDuplicated.DefaultView.Sort="CustomerID";
dtNoDuplicated=dtNoDuplicated.DefaultView.ToTable();
for (int icount = 0; icount < dtNoDuplicated.Rows.Count-1; icount++)
{
    if (dtNoDuplicated.Rows[icount]["CustomerID"].ToString() == dtNoDuplicated.Rows[icount + 1]["CustomerID"].ToString())
    {
        dtNoDuplicated.Rows[icount + 1].Delete();
    }
}
dtNoDuplicated.AcceptChanges();
dataGridViewMain.DataSource = dtNoDuplicated;

download full source code. Click download


REMOVE EMPTY ROW ENTRIES FROM DATATABLE & DATAGRID VIEW

dtMain = new DataTable();
dtMain.Columns.Add("CustomerID");
dtMain.Columns.Add("CustomerName");
dtMain.Columns.Add("ImageColumn", typeof(Image));

string photopath = Application.StartupPath + @"\images\";

dtMain.Rows.Add("GH-456", "Kenny Margaret", Image.FromFile(photopath + "1.jpg"));
dtMain.Rows.Add("HQ-450", "Cinderella", Image.FromFile(photopath + "2.jpg"));
dtMain.Rows.Add("KN-840", "Jonathan Brandis", Image.FromFile(photopath + "3.jpg"));
dtMain.Rows.Add("", "Michael Hardy", Image.FromFile(photopath + "4.jpg"));
dtMain.Rows.Add("GE-639", "Joseph Stalin", Image.FromFile(photopath + "5.jpg"));

dtMain.Rows.Add("KB-256", "Kenny Margaret", Image.FromFile(photopath + "1.jpg"));
dtMain.Rows.Add("", "Cinderella", Image.FromFile(photopath + "2.jpg"));
dtMain.Rows.Add("", "Jonathan Brandis", Image.FromFile(photopath + "3.jpg"));
dtMain.Rows.Add("", "Michael Hardy", Image.FromFile(photopath + "4.jpg"));
dtMain.Rows.Add("IA-503", "Joseph Stalin", Image.FromFile(photopath + "5.jpg"));

dataGridViewMain.DataSource = dtMain;

Now create a button and on its click event write following code :
dtNoDuplicated = dtMain.Copy();
dtNoDuplicated.DefaultView.RowFilter = "CustomerID <> ''";
dtNoDuplicated=dtNoDuplicated.DefaultView.ToTable();
dataGridViewMain.DataSource = dtNoDuplicated;

Now click the button and empty rows with blank CustomerID would get deleted from datatable as well as datagrid view.

download full source code. Click download


Get Paid 1$ For a Survey