You can pass row index as the command argument and get the row number in rowcommand event in codebehind and access the whole GridViewRow. Looking at your code you need to add few extra colums to your gridview like name,comp_id,ms_user_id and if you don't want it to be visible just hide those columns.
<asp:templatefield headertext="Edit" controlstyle-width="100%" visible="false" xmlns:asp="#unknown">
<itemtemplate>
<asp:button id="btnEdit" runat="server" text="Edit Line" commandargument="<%#((GridViewRow)Container).RowIndex%>" commandname="AddLine" />
</itemtemplate>
<controlstyle width="100%"></controlstyle>
</asp:templatefield>
In your codebehind in rowcommand event
if(e.CommandName=="AddLine")
{
int index = Int32.Parse(e.CommandArgument.ToString());
GridViewRow row = grdViewJobDetail.Rows[index];
string empName = row.Cells[0].Text.Trim();
}