Fijate que tú mismo estás definiendo que la función devuelve un entero:
Código C#:
Ver originalpublic virtual int insertvideos(string p1, string p2, string p3)
La variable de retorno, la defines:
Y con esa variable entera, estás obteniendo esto:
Código C#:
Ver originalreturnValue = command.ExecuteNonQuery();
y luego haces
Lo que no estás teniendo en cuenta es qué es lo que devuelve el método ExecuteNonQuery():
SqlCeCommand.ExecuteNonQuery (Método) Cita: Ejecuta una instrucción SQL en SqlCeConnection y devuelve el número de filas afectadas.
Es decir, no devuelve, como te decía, ningún DataTableAdapter.
Lo que debes hacer es replantear todo lo que hicieste en el otro código, o bien, crear una función que haga las dos cosas: Insertar y leer.
Es decir:
1) Creas una instancia de DataTableAdapter.
2) Inserta un registro.
2) Si el método devuelve un valor entero positivo, llenas el DataTableAdapter realizando una consulta a ese registro que acabas de insertar.
4) Si fracasó, dejas la instancia de DataTableAdapter como nula o vacía.
5) Devuelves el DAtaTableAdapter.
Otra posibilidad es que valides si la llamada a la función está devolviendo un valor mayor a cero, y simplemente mandes a leer en consecuencia.
En cualquier caso, estás planteando mal la lógica de la función
listFiles(), ya que lo que estás haciendo no es mandar a leer registros, sino a escribirlos. Son cosas distintas.