Si no me equivoco el fallo está aquí:
Código C#:
Ver originaldatos.Append(dr[i].ToString() + "'" + ", '");
Cambia eso por:
Código C#:
Ver originalif (i < (dtDatos.Columns.Count-1))
datos.Append(dr[i].ToString() + "'" + ", '");
else
datos.Append(dr[i].ToString() + "'");