I am a little confused but I am learning, here is the code I have behind the listing of students with the button. The form that will house the student details is called studentdetails. All of this is a web form like you suggested. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.SqlClient; namespace Project { public partial class StudentListdb : Form { public StudentListdb() { InitializeComponent(); } DataTable dt; private void TextBox1_TextChanged(object sender, EventArgs e) { DataView dv = new DataView(dt); dv.RowFilter = string.Format("name LIKE '%{0}%'", textBox1.Text); dataGridView1.DataSource = dv; } private void Showstudentsdb_Load(object sender, EventArgs e) { SqlConnection con = new SqlConnection(@"Data Source=server;Initial Catalog=db;Integrated Security=True"); con.Open(); SqlCommand cmd = new SqlCommand("SELECT E.SCH_YR AS School_Year, E.STU_ID AS StudentID, ISNULL(E.NAME_F_LNG, '') + ' ' + ISNULL(E.NAME_M_LNG, '') + ' ' + ISNULL(E.NAME_L_LNG, '') AS Name, E.GRD_LVL AS [Grade Level], E.CAMPUS_ID AS SchoolBuildingCode, CL.CAMPUS_NAME, D.unique_stu_id AS StateStudentID, case when E.ACTIVE_CD = 1 then 'Active' Else '' end AS status, D.SEX AS gender, REPLACE(D.email, '@g.aledoisd.org', '@aledoisd.org') AS email FROM[rsccc].[SR_STU_ENROLL] AS E INNER JOIN [rsccc].[SR_STU_DEMO] AS D ON E.STU_ID = D.STU_ID AND D.SCH_YR = E.SCH_YR LEFT OUTER JOIN [rsccc].[CR_DEMO] AS CL ON E.SCH_YR = CL.SCH_YR AND E.CAMPUS_ID = CL.CAMPUS_ID WHERE(E.SCH_YR =(SELECT MAX(SCH_YR) AS Expr1 FROM[rsccc].[DR_CURRICULUM_CYR] AS DR_CURRICULUM_CYR_1)) AND(E.STATUS_CD <> 4) AND(E.STATUS_CD <> 5) AND(E.ACTIVE_CD = 1) ORDER BY SchoolBuildingCode, StudentID, [Grade Level] ", con); SqlDataAdapter da = new SqlDataAdapter(cmd); dt = new DataTable(); da.Fill(dt); dataGridView1.DataSource = dt; DataGridViewButtonColumn btn = new DataGridViewButtonColumn(); dataGridView1.Columns.Add(btn); btn.HeaderText = "Student Details"; btn.Text = "Student Details"; btn.Name = "btn"; btn.UseColumnTextForButtonValue = true; dataGridView1.BorderStyle = BorderStyle.None; dataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.FromArgb(238, 239, 249); dataGridView1.CellBorderStyle = DataGridViewCellBorderStyle.SingleHorizontal; dataGridView1.DefaultCellStyle.SelectionBackColor = Color.SeaGreen; dataGridView1.DefaultCellStyle.SelectionForeColor = Color.WhiteSmoke; dataGridView1.BackgroundColor = Color.FromArgb(30, 30, 30); dataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.DisableResizing;//optional dataGridView1.EnableHeadersVisualStyles = false; dataGridView1.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; dataGridView1.ColumnHeadersDefaultCellStyle.Font = new Font("MS Reference Sans Serif", 10); dataGridView1.ColumnHeadersDefaultCellStyle.BackColor = Color.FromArgb(37, 37, 38); dataGridView1.ColumnHeadersDefaultCellStyle.ForeColor = Color.White; for (int i = 0; i < dataGridView1.Columns.Count; i++) { dataGridView1.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; int colw = dataGridView1.Columns[i].Width; dataGridView1.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.None; dataGridView1.Columns[i].Width = colw; } } private const int StudentDetailsColumnIndex = 0; private void TextBox2_TextChanged(object sender, EventArgs e) { DataView dv = new DataView(dt); dv.RowFilter = string.Format("StudentID LIKE '%{0}%'", textBox2.Text); dataGridView1.DataSource = dv; } private void Button1_Click(object sender, EventArgs e) { Application.Exit(); } } }