SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: Diabolo19 en Jueves 3 de Julio de 2008, 13:22

Título: Guardar una consulta SQL y acceder a ella
Publicado por: Diabolo19 en Jueves 3 de Julio de 2008, 13:22
Bien. Hola y gracias por vuestro tiempo.
Tengo un gran problema que me urge y no sé cómo resolverlo...
Os explico. Tengo una tabla en SQL Server 2.005 llamada 'Ley', en el que tengo un atributo llamado 'IDNum' (de tipo int).
Bien, necesito hacer la siguiente consulta sql en C#:

string sQueryMaxNum = "SELECT CASE WHEN max(IDNum) is Null then 1 else max(Numero)+1 end FROM pruebaxml";
int MaxNum = int.Parse(sQueryMaxNum); // Esto lo hago para pasar el string a Número y poder guardarlo bien...

Lo que hace esta consulta es que si encuentra en la tabla pruebaxml Null, me devuelve 1 y sino, el máximo número+1.

Hasta ahí bien. Después de guardar el resultado del número en sQueryMaxNum, lo tengo que introducir en esa misma tabla...

Y lo hago tal que así:
string sQueryT = "INSERT INTO Tener(IDNum) VALUES ('" + MaxNum + "')";

Compila bien pero no se ejecuta. Me da error cuando hago el paso de string a int
"La cadena de entrada no tiene el formato correcto."

¿Lo estoy haciendo bien? O hay algo que tengo que cambiar para que funcione?
Título: Re: Guardar una consulta SQL y acceder a ella
Publicado por: knk1 en Miércoles 9 de Julio de 2008, 02:37
¿No es por esto?

Tu forma:
Código: Text
  1. string sQueryT = "INSERT INTO Tener(IDNum) VALUES [size=13px]('" + MaxNum + "')";[/size]
  2.  

La que yo creo
Código: Text
  1. string sQueryT = "INSERT INTO Tener(IDNum) VALUES[size=13px] ("'" + MaxNum + "'");[/size]
  2.  
Título: Re: Guardar una consulta SQL y acceder a ella
Publicado por: F_Tanori en Miércoles 9 de Julio de 2008, 17:44
Cita de: "Diabolo19"
string sQueryMaxNum = "SELECT CASE WHEN max(IDNum) is Null then 1 else max(Numero)+1 end FROM pruebaxml";
int MaxNum = int.Parse(sQueryMaxNum); // Esto lo hago para pasar el string a Número y poder guardarlo bien...

Lo que hace esta consulta es que si encuentra en la tabla pruebaxml Null, me devuelve 1 y sino, el máximo número+1.

Hasta ahí bien. Después de guardar el resultado del número en sQueryMaxNum, lo tengo que introducir en esa misma tabla...

Y lo hago tal que así:
string sQueryT = "INSERT INTO Tener(IDNum) VALUES ('" + MaxNum + "')";

Compila bien pero no se ejecuta. Me da error cuando hago el paso de string a int
"La cadena de entrada no tiene el formato correcto."

¿Lo estoy haciendo bien? O hay algo que tengo que cambiar para que funcione?

Puedes mostrar tu codigo?
dices: lo tengo que introducir en esa misma tabla (pruebaxml) y en el query del insert tienes otro nombre de tabla Tener

Haz probado la consulta por si sola en  el query analizer por ejemplo ?


Cita de: "knk1"
¿No es por esto?

Tu forma:
Código: Text
  1. string sQueryT = "INSERT INTO Tener(IDNum) VALUES [size=13px]('" + MaxNum + "')";[/size]
  2.  

La que yo creo
Código: Text
  1. string sQueryT = "INSERT INTO Tener(IDNum) VALUES[size=13px] ("'" + MaxNum + "'");[/size]
  2.  

esta incorrecta tu forma : La que yo creo no esta bien concatenado

Saludos
Título: Re: Guardar una consulta SQL y acceder a ella
Publicado por: knk1 en Miércoles 9 de Julio de 2008, 23:40
Va, debo admitir que no estaba seguro, por eso puse "la que yo creo". Yo estoy acostumbrado a poner los valores como parámetros (@param) en lugar de concatenar.

Saludos y gracias por la corrección.
Título: Re: Guardar una consulta SQL y acceder a ella
Publicado por: Diabolo19 en Jueves 10 de Julio de 2008, 07:55
Pues si que lo tengo que probar...
De todas formas, GRACIAS por tu ayuda...