This line seems very strange:
object num1 = row.Table.Rows[0][0].ToString();
as you're always using the first row of the underlying table (and thus will always get just the value of its first column inserted). IMHO this should just read
object num1 = row[0].ToString();
Would that help?