By observing this working code I've found that everything of your code is correct except that in the form load event or any other time you should set the property AutoGenerateColumns of your dataGridView to "true"
dataGridView2.AutoGenerateColumns = true;
The Complete code is given below observe and fix yours
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnLoad_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable();
DataColumn dc = new DataColumn("EmployeeID", typeof(int));
DataColumn dc1 = new DataColumn("EmployeeName", typeof(string));
dt.Columns.Add(dc); dt.Columns.Add(dc1);
DataRow row = dt.NewRow();
row["EmployeeID"] = 100;
row["EmployeeName"] = "ANIS";
dt.Rows.Add(row);
row = dt.NewRow();
row["EmployeeID"] = 101;
row["EmployeeName"] = "SUMON";
dt.Rows.Add(row);
bindingSource1.DataSource = dt;
DataGridViewButtonColumn buttonColumn =
new DataGridViewButtonColumn();
buttonColumn.HeaderText = "";
buttonColumn.Name = "Status Request";
buttonColumn.Text = "Select";
buttonColumn.UseColumnTextForButtonValue = true;
buttonColumn.DefaultCellStyle.BackColor = Color.DodgerBlue;
buttonColumn.DefaultCellStyle.SelectionBackColor = Color.Yellow;
dataGridView1.Columns.Add(buttonColumn);
}
private void Form1_Load(object sender, EventArgs e)
{
dataGridView1.AutoGenerateColumns = true;
}
}