Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

PROBLEMILLA consulta sql

Estas en el tema de PROBLEMILLA consulta sql en el foro de SQL Server en Foros del Web. Bien... Gracias de antemano por vuestro tiempo. Tengo una BB.DD con dos campos tal que así: Tabla pruebaxml Número Texto En principio está vacía y ...
  #1 (permalink)  
Antiguo 23/06/2008, 10:23
 
Fecha de Ingreso: abril-2007
Mensajes: 13
Antigüedad: 17 años, 1 mes
Puntos: 0
PROBLEMILLA consulta sql

Bien... Gracias de antemano por vuestro tiempo.
Tengo una BB.DD con dos campos tal que así:
Tabla pruebaxml
Número Texto

En principio está vacía y lo que quiero hacer es que cada vez que se introduzca algo en el atributo Texto, en el Número se añada un valor (es el identificador) correlativo, es decir,

Número Texto
1 Esto es una prueba
2 Esto es una prueba 2
...

Bien, estoy trabajando con C# y ASP.NET... y os digo como lo estoy haciendo...
Creo una variable que te mire el máximo número de la columna Número así:

SELECT max(Número) from pruebaxml; -- Esta consulta funciona perfectamente
y la guardo en una variable de tipo entero

int sqlnumero = SELECT max(Número) from pruebaxml;

NMe dice que no puede convertir implícitamente del tipo string a int....

Y luego, hago string sQuery2 = "INSERT INTO pruebaxml (Numero) VALUES ('" + sqlnumero+1 + "')";

Bueno, pues ese fallilto me da y esa es la idea que tengo...

P.D.: Valdría esa consulta si la tabla está vacía??? Es decir, si a NULL lo sumas 1 te da 1, o no? O tendría que diferenciar casos.... Si la tabla está vacía insertar 1, sino está vacía, como lo esoty haciendo yo...
Gracias...
  #2 (permalink)  
Antiguo 23/06/2008, 14:05
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 9 meses
Puntos: 39
Respuesta: PROBLEMILLA consulta sql

Lo mas facil es que definas tu campo Numero con identidad.
Si no quieres eso, entonces tu query deberia ser asi:
Código:
SELECT isnull(max(Número),0)+1 from pruebaxml
Suerte!
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 24/06/2008, 03:59
 
Fecha de Ingreso: abril-2007
Mensajes: 13
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: PROBLEMILLA consulta sql

Esto es lo que he hecho y este es el error que me da:

string sQuery2a = "SELECT CASE WHEN max(Numero) is Null then 1 else max(Numero)+1 end as Siguiente FROM pruebaxml";
string sQuery2 = "INSERT INTO pruebaxml(Numero, Texto) VALUES ('Siguiente','" + tepi[0].InnerText + "')";
SqlConnection SqlConn2 = new SqlConnection(connectionString);
SqlConn2.Open();
SqlCommand com = new SqlCommand(sQuery2, SqlConn2);
SqlDataReader reader2 = com.ExecuteReader();
SqlConn2.Close();


Error de conversión al convertir el valor varchar 'Siguiente' al tipo de datos int.

No sé por qué...
  #4 (permalink)  
Antiguo 24/06/2008, 07:55
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 9 meses
Puntos: 39
Respuesta: PROBLEMILLA consulta sql

Pues es simple. Estas concatenando mal el valor 'Siguiente'.
Primero tienes que obtener el valor siguiente. Esta es la mejor forma: SELECT isnull(max(Número),0)+1 from pruebaxml.
Luego ejecutas este query. Despues recien concatenas.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 03:04.