Guardar resultados

14/04/2004 - 18:26 por Coamndo_Calabera | Informe spam
Hola a todos
tengo un par de dudas de como rescatar datos de una
consulta.
Me explico:
Necesito hacer una consulta a la Base de datos (SQL) y
guardar el valor devuelto en una variable.
Hago la consulta con el SqlCommand.CommandText="consulta"
pero no se como guardar el resultado en la variable,
probe de poner el executenonquery en la variable, pero
siempre me devuelve -1.
No se si se tiene que hacer con el ExecuteReader, si es
asi agradeceria que me postearais un ejemplo de codigo
con la comanda o que me orientaseis sobre donde puedo
encontrar ejemplos completos.

Gracias por la primera pregunta

Ahora la segunda, (esta relacionada)

En SQL existen los cursores, que van de muerte para
recorrer las consultas con mas de una resultado.
Existen en C#??
si es asi donde puedo encontrar ejemplos ??

muchas gracias de antemano y un saludo muy grande

Preguntas similare

Leer las respuestas

#1 Michael Giagnocavo [MVP]
14/04/2004 - 19:26 | Informe spam
Me explico:
Necesito hacer una consulta a la Base de datos (SQL) y
guardar el valor devuelto en una variable.
Hago la consulta con el SqlCommand.CommandText="consulta"
pero no se como guardar el resultado en la variable,
probe de poner el executenonquery en la variable, pero
siempre me devuelve -1.
No se si se tiene que hacer con el ExecuteReader, si es
asi agradeceria que me postearais un ejemplo de codigo
con la comanda o que me orientaseis sobre donde puedo
encontrar ejemplos completos.



Debes crear y pasar un parametro SqlParameter:

SqlParameter param = SqlCommand.Parameters.Add("@myParam", type, size);
param.Direction = someDirection;
etc.

Despues de ejecutar el comando, podras usar param.Value.

En SQL existen los cursores, que van de muerte para
recorrer las consultas con mas de una resultado.
Existen en C#??
si es asi donde puedo encontrar ejemplos ??



C# no tiene cursores (bueno, System.Data no los tiene). Pero siempre puedes
usarlos al lado del servidor.

-mike
MVP
Respuesta Responder a este mensaje
#2 Comando_Calabera
14/04/2004 - 20:16 | Informe spam
Puedes concretaar lo de direction??
yo puse eso y no me funciono haber si he echo algomal

System.Data.SqlClient.SqlCommand C1 = new
System.Data.SqlClient.SqlCommand();

C1.Connection=this.sqlConnection1; //li diem
quina es la conexió

System.Data.SqlClient.SqlParameter para =
C1.Parameters.Add("res",System.Data.SqlDbType.Text,50);
para.Direction=someDirection
C1.CommandText="select nom from TClients where
idclient = 3";
this.textBox1.Text=para.Value.ToString();

C1.Connection.Open
C1.ExecuteNonQuery();
C1.Connection.Close();


Gracias de todos modos un saludo

Me explico:
Necesito hacer una consulta a la Base de datos (SQL) y
guardar el valor devuelto en una variable.
Hago la consulta con el




SqlCommand.CommandText="consulta"
pero no se como guardar el resultado en la variable,
probe de poner el executenonquery en la variable, pero
siempre me devuelve -1.
No se si se tiene que hacer con el ExecuteReader, si es
asi agradeceria que me postearais un ejemplo de codigo
con la comanda o que me orientaseis sobre donde puedo
encontrar ejemplos completos.



Debes crear y pasar un parametro SqlParameter:

SqlParameter param = SqlCommand.Parameters.Add


("@myParam", type, size);
param.Direction = someDirection;
etc.

Despues de ejecutar el comando, podras usar param.Value.

En SQL existen los cursores, que van de muerte para
recorrer las consultas con mas de una resultado.
Existen en C#??
si es asi donde puedo encontrar ejemplos ??



C# no tiene cursores (bueno, System.Data no los tiene).


Pero siempre puedes
usarlos al lado del servidor.

-mike
MVP

.

Respuesta Responder a este mensaje
#3 Michael Giagnocavo [MVP]
14/04/2004 - 21:43 | Informe spam
System.Data.SqlClient.SqlParameter para >C1.Parameters.Add("res",System.Data.SqlDbType.Text,50);



Los parametros deberian empezar con @ -- "@res".

para.Direction=someDirection



SqlParameter.Direction es un System.Data.ParameterDirection. Debes usar uno
de los valores:
ParameterDirection.Input
ParameterDirection.InputOutput
ParameterDirection.Output
ParameterDirection.ReturnValue

Por default, es Input. No se como esta construido tu codigo, pero supongo
que querras usar Output o ReturnValue.

-Michael
MVP


Me explico:
Necesito hacer una consulta a la Base de datos (SQL) y
guardar el valor devuelto en una variable.
Hago la consulta con el




SqlCommand.CommandText="consulta"
pero no se como guardar el resultado en la variable,
probe de poner el executenonquery en la variable, pero
siempre me devuelve -1.
No se si se tiene que hacer con el ExecuteReader, si es
asi agradeceria que me postearais un ejemplo de codigo
con la comanda o que me orientaseis sobre donde puedo
encontrar ejemplos completos.



Debes crear y pasar un parametro SqlParameter:

SqlParameter param = SqlCommand.Parameters.Add


("@myParam", type, size);
param.Direction = someDirection;
etc.

Despues de ejecutar el comando, podras usar param.Value.

En SQL existen los cursores, que van de muerte para
recorrer las consultas con mas de una resultado.
Existen en C#??
si es asi donde puedo encontrar ejemplos ??



C# no tiene cursores (bueno, System.Data no los tiene).


Pero siempre puedes
usarlos al lado del servidor.

-mike
MVP

.

Respuesta Responder a este mensaje
#4 Octavio Hernandez
15/04/2004 - 00:14 | Informe spam
a) Si la consulta devuelve un valor escalar (un único valor), debes aplicar
ExecuteScalar() al comando. Este mátodo te devuelve un object (porque a
priori no sabe si tu consulta devolverá una cadena, un entero, etc.) y tú
deberás convertir ese dato al tipo adecuado. Por ejemplo:

sqlConnection1.Open();
sqlCommand1.Connection = sqlConnection1;
sqlCommand1.CommandText = "SELECT COUNT(*) FROM Employee";
int cantidad = (int) sqlCommand1.ExecuteScalar();
// ...

b) No existen los cursores de servidor en .NET. El modelo se basa en leer
los datos a un DataSet en memoria, para luego trabajar con ellos como si de
arrays se tratara. Si lo que quieres es leer el resultado de una consulta EN
UNA SOLA DIRECCION, entonces ExecuteReader es el método adecuado:

sqlConnection1.Open();
sqlCommand2.Connection = sqlConnection1;
sqlCommand2.CommandText = "SELECT LastName, FirstName, Age FROM
Employee";
SqlDataReader rd = sqlCommand2.ExecuteReader();
while (rd.Read()) {
// obtener campos del registro
string apellido = rd.GetString("LastName");
string nombre = rd.GetString("FirstName");
int edad = rd.GetInteger("LastName");
// hacer lo que quieras con esos datos
}
rd.Close(); // importante cerrar lector
// ...

Salu2,

Octavio

"Coamndo_Calabera" escribió en el mensaje
news:1c7de01c4223d$4315d430$
Hola a todos
tengo un par de dudas de como rescatar datos de una
consulta.
Me explico:
Necesito hacer una consulta a la Base de datos (SQL) y
guardar el valor devuelto en una variable.
Hago la consulta con el SqlCommand.CommandText="consulta"
pero no se como guardar el resultado en la variable,
probe de poner el executenonquery en la variable, pero
siempre me devuelve -1.
No se si se tiene que hacer con el ExecuteReader, si es
asi agradeceria que me postearais un ejemplo de codigo
con la comanda o que me orientaseis sobre donde puedo
encontrar ejemplos completos.

Gracias por la primera pregunta

Ahora la segunda, (esta relacionada)

En SQL existen los cursores, que van de muerte para
recorrer las consultas con mas de una resultado.
Existen en C#??
si es asi donde puedo encontrar ejemplos ??

muchas gracias de antemano y un saludo muy grande
Respuesta Responder a este mensaje
#5 Comando_Calabera
15/04/2004 - 00:35 | Informe spam
Pues graciasOctavio, la verdad es que tiene muy buena
pinta, mañana lo pruebo haber si me funciona bien
de nuevo muchas gracias (a los dos )

un saludo






a) Si la consulta devuelve un valor escalar (un único


valor), debes aplicar
ExecuteScalar() al comando. Este mátodo te devuelve un


object (porque a
priori no sabe si tu consulta devolverá una cadena, un


entero, etc.) y tú
deberás convertir ese dato al tipo adecuado. Por ejemplo:

sqlConnection1.Open();
sqlCommand1.Connection = sqlConnection1;
sqlCommand1.CommandText = "SELECT COUNT(*) FROM


Employee";
int cantidad = (int) sqlCommand1.ExecuteScalar();
// ...

b) No existen los cursores de servidor en .NET. El modelo


se basa en leer
los datos a un DataSet en memoria, para luego trabajar


con ellos como si de
arrays se tratara. Si lo que quieres es leer el resultado


de una consulta EN
UNA SOLA DIRECCION, entonces ExecuteReader es el método


adecuado:

sqlConnection1.Open();
sqlCommand2.Connection = sqlConnection1;
sqlCommand2.CommandText = "SELECT LastName, FirstName,


Age FROM
Employee";
SqlDataReader rd = sqlCommand2.ExecuteReader();
while (rd.Read()) {
// obtener campos del registro
string apellido = rd.GetString("LastName");
string nombre = rd.GetString("FirstName");
int edad = rd.GetInteger("LastName");
// hacer lo que quieras con esos datos
}
rd.Close(); // importante cerrar lector
// ...

Salu2,

Octavio

"Coamndo_Calabera" escribió en el


mensaje
news:1c7de01c4223d$4315d430$
Hola a todos
tengo un par de dudas de como rescatar datos de una
consulta.
Me explico:
Necesito hacer una consulta a la Base de datos (SQL) y
guardar el valor devuelto en una variable.
Hago la consulta con el




SqlCommand.CommandText="consulta"
pero no se como guardar el resultado en la variable,
probe de poner el executenonquery en la variable, pero
siempre me devuelve -1.
No se si se tiene que hacer con el ExecuteReader, si es
asi agradeceria que me postearais un ejemplo de codigo
con la comanda o que me orientaseis sobre donde puedo
encontrar ejemplos completos.

Gracias por la primera pregunta

Ahora la segunda, (esta relacionada)

En SQL existen los cursores, que van de muerte para
recorrer las consultas con mas de una resultado.
Existen en C#??
si es asi donde puedo encontrar ejemplos ??

muchas gracias de antemano y un saludo muy grande




.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida