Foros del Web » Programando para Internet » ASPX (.net) »

Devolver solo un registro en datarow

Estas en el tema de Devolver solo un registro en datarow en el foro de ASPX (.net) en Foros del Web. Cual es la forma más rápida para devolver un query de un sólo registro en un datarow: usando SqlDataAdapter o tal vez SqlDataReader. En el ...
  #1 (permalink)  
Antiguo 19/06/2007, 12:42
 
Fecha de Ingreso: mayo-2006
Mensajes: 178
Antigüedad: 18 años
Puntos: 3
Devolver solo un registro en datarow

Cual es la forma más rápida para devolver un query de un sólo registro en un datarow: usando SqlDataAdapter o tal vez SqlDataReader.

En el ejemplo que veis abajo es para una query que devulve X registros en un datatable. Como lo veis?

Dim cn As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("M iCadena"))
Dim Misql as string ="SELECT * FROM Usuarios WHERE ID=2"
Dim cm As SqlCommand = New SqlCommand(MiSQL, cn)
Dim table As DataTable = New DataTable
Try
cm.Connection.Open()
Dim da As SqlDataAdapter = New SqlDataAdapter(cm)
da.Fill(table)
Catch ex As Exception
cm.Connection.Close()
Exit Function
End Try
cm.Connection.Close()
  #2 (permalink)  
Antiguo 20/06/2007, 04:34
Avatar de javiermil  
Fecha de Ingreso: agosto-2004
Mensajes: 509
Antigüedad: 19 años, 8 meses
Puntos: 2
Re: Devolver solo un registro en datarow

SELECT TOP 1 * FROM Usuarios WHERE ID=2

Un saludo
  #3 (permalink)  
Antiguo 20/06/2007, 07:51
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
Re: Devolver solo un registro en datarow

Ei javiermil, creo que la duda va más por si utilizar DataReader o DataAdapter, que no por lo del TOP 1. Lo digo también porqué el WHERE ID=2 tiene pinta de devolver un solo registro.
Yo interpreto que la duda, que no deja de ser interesante, es si mejor usar un DataAdapter que te rellene un DataTable, y de ahí devolver la primera DataRow, o si es más rápido leer con un DataReader (como se dice que es más veloz) y luego de obtener el resultado, construir una DataRow y meter el dato ahí, para devolver también una DataRow.
Por lógica y por limpieza de código, no hay color en la respuesta, pero... sería más rápido el proceso al leer con el DataReader??
Venga, un saludo!
__________________
..:: moNTeZIon ::..
  #4 (permalink)  
Antiguo 20/06/2007, 10:50
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Re: Devolver solo un registro en datarow

Yo lo haría con un datareader y una clase definida (con las columnas que hay) y utilizar una coleccion mediante generics..

ejemplo:

Código:
public class MyCustomRow {

        private string m_myvalue1;
        private string m_myvalue2;

        public string MyValue1 {
            get { return this.m_myvalue1; }
            set { this.m_myvalue1 = value; }
        }

        public string MyValue2
        {
            get { return this.m_myvalue2; }
            set { this.m_myvalue2 = value; }
        }

        public MyCustomRow(string myvalue1, string myvalue2) {
            this.MyValue1 = myvalue1;
            this.MyValue2 = myvalue2;
        }
    }
...
...
 System.Collections.Generic.IList<MyCustomRow> rows = new System.Collections.Generic.IList<MyCustomRow> ();

        if (dr.Read()) {
            rows.Add(new MyCustomRow(dr["columna1"].ToString(), dr["columna2"].ToString()));
        }
y con ello ya tienes toda la fila en tu clase para utilizarla donde quieras

espero haber sido claro

salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #5 (permalink)  
Antiguo 21/06/2007, 03:45
Avatar de javiermil  
Fecha de Ingreso: agosto-2004
Mensajes: 509
Antigüedad: 19 años, 8 meses
Puntos: 2
Re: Devolver solo un registro en datarow

Pues lo entendí mal. Pensé que se referia a como devolver un solo registro de una consulta de varios. Bueno que él mismo nos resuelva la duda.

Un saludo
  #6 (permalink)  
Antiguo 25/06/2007, 01:42
 
Fecha de Ingreso: mayo-2006
Mensajes: 178
Antigüedad: 18 años
Puntos: 3
Re: Devolver solo un registro en datarow

Si era lo comentado por moNTeZIon. Muchas gracias a todos.

Entonces mejor DataReader.
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 19:51.