Well...there are a huge number of things wrong here, but lets concentrate on the fundamentals...
This approach won't work.
The Name property of a DataGridView is a string, nothing more. It does not transfer any other information, and it certainly doesn't make a DataGridView refer to an existing version with data in it - so when you try to access items, there aren't any, because the DataGridView you are accessing is not the same one as the existing one full of data, it just has the same Name property.
Now, I'm not sure exactly what you are trying to do, but I suspect that you are trying to store a whole DataGridView into your database by doing something along the lines of:
Dim sql As String = "INSERT INTO MyTable (MyColumn) VALUES ('" + myDataGridView + "')"
Which won;t work, even slightly, because all it does it store the name of the class into the database:
System.Windows.DataGridView
not the content.
You need to sit down and rethink the whole of this project: because I suspect that everything need to be redesigned, from the database on up!