Assuming you have to have the info in your db, the. Looping as you are is not a bad option.
Adding to some collection rather than a datagridview would be better - as I'm guessing you don't really want to see the data?
I'm guessing you're going to stream in a file and the look through your datagridview looking for matches? That's going to be pretty slow if you have many sigs or many files, so you want to be as efficient as should can.
So - store the sig threat and name in some collection like a List(of VirusDefinition)
Then you can iterate that list...
For each vid as VirusDefinition in myVirusDefinitions
If myTextFileInAString.Contains(vid.Sig) Then
Do whatever you want to do
End if
Next