From your comment, it looks like you already figured out the first issue - adding columns.
You should be able to copy them all using a loop:
foreach (DataGridViewColumn col in dataGridView1.Columns)
dataGridView2.Columns.Add(col.Name, col.HeaderText);
As for the second error, you can't add a DataRow
from the first grid directly to the second, but you can clone it and then add that. Cloning doesn't copy the cells values, but you can do that in a loop too.
This snippet clones the first row from one grid to the other:
var newRow = (DataGridViewRow)dataGridView1.Rows[0].Clone();
foreach (DataGridViewCell cell in dataGridView1.Rows[0].Cells)
newRow.Cells[cell.ColumnIndex].Value = cell.Value;
dataGridView2.Rows.Add(newRow);