Ver Mensaje Individual
  #6 (permalink)  
Antiguo 29/06/2013, 15:44
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: no se puede convertir implicitamente int en dataset.datatable

Fijate que tú mismo estás definiendo que la función devuelve un entero:
Código C#:
Ver original
  1. public virtual int insertvideos(string p1, string p2, string p3)
La variable de retorno, la defines:
Código C#:
Ver original
  1. int returnValue;
Y con esa variable entera, estás obteniendo esto:
Código C#:
Ver original
  1. returnValue = command.ExecuteNonQuery();
y luego haces
Código C#:
Ver original
  1. return returnValue;
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.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)