You first have to think about the problem without displaying the data, once resolved use the DataGridView just for display.
I made a small example, I hope it helps you understand the problem:
First you need to define an object from your Fiscal Note:
public class NotaFiscal
{
public string Chave {get;set;}
public string Emitente {get;set;}
public decimal Total {get;set;}
}
Then you will get the data in this format, no matter if it comes from the database, excel, or another source:
public static List<NotaFiscal> GetNotasExcel()
{
List<NotaFiscal> notas = new List<NotaFiscal>();
notas.Add(new NotaFiscal(){ Chave = "123456ABC", Emitente = "Empresa A", Total = 10 });
notas.Add(new NotaFiscal(){ Chave = "223456DEF", Emitente = "Empresa B", Total = 20 });
notas.Add(new NotaFiscal(){ Chave = "423456JKL", Emitente = "Empresa D", Total = 40 });
notas.Add(new NotaFiscal(){ Chave = "623456PQR", Emitente = "Empresa F", Total = 60 });
notas.Add(new NotaFiscal(){ Chave = "723456STU", Emitente = "Empresa G", Total = 70 });
notas.Add(new NotaFiscal(){ Chave = "823456VWX", Emitente = "Empresa H", Total = 80 });
return notas;
}
public static List<NotaFiscal> GetNotasConsisaNet()
{
List<NotaFiscal> notas = new List<NotaFiscal>();
notas.Add(new NotaFiscal(){ Chave = "123456ABC", Emitente = "Empresa A", Total = 10 });
notas.Add(new NotaFiscal(){ Chave = "223456DEF", Emitente = "Empresa B", Total = 20 });
notas.Add(new NotaFiscal(){ Chave = "323456GHI", Emitente = "Empresa C", Total = 30 });
notas.Add(new NotaFiscal(){ Chave = "423456JKL", Emitente = "Empresa D", Total = 40 });
notas.Add(new NotaFiscal(){ Chave = "523456MNO", Emitente = "Empresa E", Total = 50 });
notas.Add(new NotaFiscal(){ Chave = "623456PQR", Emitente = "Empresa F", Total = 60 });
notas.Add(new NotaFiscal(){ Chave = "723456STU", Emitente = "Empresa G", Total = 70 });
notas.Add(new NotaFiscal(){ Chave = "823456VWX", Emitente = "Empresa H", Total = 80 });
return notas;
}
So you store the data in lists, so you can work with them:
List<NotaFiscal> notasExcel = GetNotasExcel();
List<NotaFiscal> notasConsisaNet = GetNotasConsisaNet();
Now, you can find the data, under the conditions you want. Taking advantage of your case, I made an example to select all the notes that are in the "ConsisaNET" and are not in the Excel file:
List<string> chavesExcept = notasConsisaNet.Select(x => x.Chave).Except(notasExcel.Select(x=>x.Chave)).ToList();
Notice that I had to select all the keys (string) to compare with the keys of the other list. This is because if you compare two objects they will be compared by the instance, so even though the data is the same, they are different instances and would not be returned in that clause.
With the list of keys, you can now select the desired notes (if necessary):
List<NotaFiscal> notasExcept = notasConsisaNet.Where(x => chavesExcept.Contains(x.Chave)).ToList();
Ready! You already have all the data you need in memory. Just view them:
dataGridViewExcept.DataSource = notasExcept;
dataGridViewNotasExcel.DataSource = notasExcel;
dataGridViewNotasConsisa.DataSource = notasConsisaNet;
I've done an example in .NETFiddle
I hope it helps solve the problem. I recommend that you visit and read the Tour as it is important to know how to get involved in the community and to ask questions . You can still improve your question by making it more specific and clear, thus gaining a reputation and usually negative votes are removed.