Rather than appending fname and lname to your SQL string, you should use parameters for them.

With the method you have used, if there are any special characters in them (such as ' in the surname O'Brien) you will get errors and/or bugs.
It is not returning the correct first name lastname.
Is e.RowIndex the right thing to use?

It could be, but I don't use .Net enough to know.