Foros del Web » Programación para mayores de 30 ;) » .NET »

[SOLUCIONADO] Acceder a datos de un DataTable

Estas en el tema de Acceder a datos de un DataTable en el foro de .NET en Foros del Web. Estimados necesito urugente de la ayuda de uds estoy con un problema. Estoy trabajando en C# y con SQL Server 2005, el tema es el ...
  #1 (permalink)  
Antiguo 24/02/2015, 08:58
 
Fecha de Ingreso: octubre-2014
Ubicación: Montevideo
Mensajes: 41
Antigüedad: 10 años
Puntos: 0
Acceder a datos de un DataTable

Estimados necesito urugente de la ayuda de uds estoy con un problema. Estoy trabajando en C# y con SQL Server 2005, el tema es el siguiente: llamo a un Store Procedure pasandole un parámetro y este me devuelve un Proyecto de la tabla Proyecto y lo guardo en un DataTable, a este Datatable me gustaría poder acceder para asignarle los valores de ese proyecto a los textbox correspondientes y mostrarlo en mi formulario, mi código es el siguiente:
Proyecto pProyecto = new Proyecto();
SqlConnection conn = Conexion2.ObtenerConexion();
SqlDataAdapter da = new SqlDataAdapter();
DataTable dt = new DataTable();


SqlCommand comando = new SqlCommand(string.Format("Buscar_Proyecto_Nombre", conn));
comando.Connection = conn;
comando.CommandType = CommandType.StoredProcedure;
comando.CommandText = "Buscar_Proyecto_Nombre";
comando.Parameters.Add(new SqlParameter("@NOMBRE", SqlDbType.NVarChar));
comando.Parameters["@NOMBRE"].Value = pNombre;

da.SelectCommand = comando;
da.Fill(dt);

if (dt.Rows.Count > 0)
{

pProyecto.Nombre = dt.Rows[0].ToString();
}
  #2 (permalink)  
Antiguo 24/02/2015, 09:15
Avatar de giovani_loera  
Fecha de Ingreso: mayo-2011
Ubicación: Tijuana
Mensajes: 225
Antigüedad: 13 años, 6 meses
Puntos: 21
Respuesta: Acceder a datos de un DataTable

Te falta indicar el nombre o posicion de la columna

//mostrar dato del renglon 1, columna 1 del DataTable
pProyecto.Nombre = dt.Rows[0][0].ToString();

//mostrar el dato del renglon 1, de la columan Nombre
pProyecto.Nombre = dt.Rows[0]["Nombre"].ToString();
  #3 (permalink)  
Antiguo 25/02/2015, 05:58
 
Fecha de Ingreso: octubre-2014
Ubicación: Montevideo
Mensajes: 41
Antigüedad: 10 años
Puntos: 0
Respuesta: Acceder a datos de un DataTable

Cita:
Iniciado por giovani_loera Ver Mensaje
Te falta indicar el nombre o posicion de la columna

//mostrar dato del renglon 1, columna 1 del DataTable
pProyecto.Nombre = dt.Rows[0][0].ToString();

//mostrar el dato del renglon 1, de la columan Nombre
pProyecto.Nombre = dt.Rows[0]["Nombre"].ToString();
Genio!!! si esto me funciono lo que ahora tengo problemas cuando es un int me da este error, no se si el código estara bien?

pProyecto.Telefono = Convert.ToInt32(dt.Rows[0]);
pProyecto.Telefono = Convert.ToInt32(dt.Rows[0][0]);
pProyecto.Telefono=Convert.ToInt32(dt.Rows[0]["TELEFONO"]);




No se puede convertir un objeto de tipo 'System.Data.DataRow' al tipo 'System.IConvertible'.
  #4 (permalink)  
Antiguo 25/02/2015, 09:28
Avatar de giovani_loera  
Fecha de Ingreso: mayo-2011
Ubicación: Tijuana
Mensajes: 225
Antigüedad: 13 años, 6 meses
Puntos: 21
Respuesta: Acceder a datos de un DataTable

De nada, es un justo ayudar.

La sintaxis para convertir a Int esta bien,
pero recuerda que un Telefeno puede tener ( y -

Lo recomendable es que el telefono sea de tipo String.

Checa como esta estructurado o cual es el dato que trae el DataTable
respecto al campo Telefono.

En VS puedes poner un Breakpoint y checar en ejecucion las propiedades lo que tiene cada variable y controles.
  #5 (permalink)  
Antiguo 25/02/2015, 10:25
 
Fecha de Ingreso: octubre-2014
Ubicación: Montevideo
Mensajes: 41
Antigüedad: 10 años
Puntos: 0
Respuesta: Acceder a datos de un DataTable

Cita:
Iniciado por giovani_loera Ver Mensaje
De nada, es un justo ayudar.

La sintaxis para convertir a Int esta bien,
pero recuerda que un Telefeno puede tener ( y -

Lo recomendable es que el telefono sea de tipo String.

Checa como esta estructurado o cual es el dato que trae el DataTable
respecto al campo Telefono.

En VS puedes poner un Breakpoint y checar en ejecucion las propiedades lo que tiene cada variable y controles.
Es verdad cambiaré a string el telefono , pero tengo un idcliente que es de tipo INT y ese si necesito convertirlo , la sintaxis es asi

pProyecto.ID_Cliente = Convert.ToInt32(dt.Rows[0]);
pProyecto.ID_Cliente = Convert.ToInt32(dt.Rows[0][0]);
pProyecto.ID_Cliente = Convert.ToInt32(dt.Rows[0]["ID_Cliente"]);


estuve viendo con el break point pero no me doy cuenta donde esta el problema me da le mismo error que te pase antes
  #6 (permalink)  
Antiguo 25/02/2015, 11:09
 
Fecha de Ingreso: octubre-2014
Ubicación: Montevideo
Mensajes: 41
Antigüedad: 10 años
Puntos: 0
Respuesta: Acceder a datos de un DataTable

  #7 (permalink)  
Antiguo 25/02/2015, 15:15
Avatar de giovani_loera  
Fecha de Ingreso: mayo-2011
Ubicación: Tijuana
Mensajes: 225
Antigüedad: 13 años, 6 meses
Puntos: 21
Respuesta: Acceder a datos de un DataTable

No puedo ver bien la imagen.

Pero creo que vi algo que tal vez ese es el error

estas poniendo 3 lineas que solo debes usar 1

//Esta linea esta mal
pProyecto.ID_Cliente = Convert.ToInt32(dt.Rows[0]);
/*Esta linea esta bien, estas accediendo a la columna por su index
pero no es la mas recomendable*/
pProyecto.ID_Cliente = Convert.ToInt32(dt.Rows[0][0]);
/*Esta linea esta mucho mejor, porque estas accesadando a la columna por su
nombre.
*/
pProyecto.ID_Cliente = Convert.ToInt32(dt.Rows[0]["ID_Cliente"]);
  #8 (permalink)  
Antiguo 26/02/2015, 07:19
 
Fecha de Ingreso: octubre-2014
Ubicación: Montevideo
Mensajes: 41
Antigüedad: 10 años
Puntos: 0
Respuesta: Acceder a datos de un DataTable

GENIO!!!! quedó solucionado era ese el problema muchas muchas gracias por tu dedicación y tu tiempo me salvaste!!
  #9 (permalink)  
Antiguo 26/02/2015, 08:58
Avatar de giovani_loera  
Fecha de Ingreso: mayo-2011
Ubicación: Tijuana
Mensajes: 225
Antigüedad: 13 años, 6 meses
Puntos: 21
Respuesta: Acceder a datos de un DataTable

No de nada.

Para eso existe el foro y las personas inscritas en el

Y da gusto saber que ayudastes a alguien.

Etiquetas: datatable, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:08.