Autor
|
Tema: [Mod]Problemas Consulta SQL desde VS 2008 (Leído 6,013 veces)
|
usuani
Desconectado
Mensajes: 55
|
Ola estoy haciendo pruebas con la base de datos Northwind de dql sever managmen studio express desde visual studio 2008, mi problema es que al ejecutar mi aplicacion me salta el siguiente error "No se controló sql esception sintaxis incorrecta cera de 'LeerTerritorios'" yo quiero ler los terrirorios que tine una region... la sql creo que la tengo vien, es esta:
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO
ALTER PROCEDURE [dbo].[LeerTerritorios] @RegionID int AS BEGIN Select TerritoryID, TerritoryDescription From Territories Where RegionID = @RegionID Order by 2 END
y en la clase tengo:
public class Territories : List<Territory> { #region Métodos Públicos public void Leer(int RegionID) { SqlAccesoDatos.AñadirParámetro("@RegionID", System.Data.SqlDbType.Int, RegionID); // SqlDataReader dr = SqlAccesoDatos.ObtenerDataReader("LeerTerritorios");
//while (dr.Read()) // this.Add(new Territory(Convert.ToInt32(dr["TerritoryID"]), // Convert.ToInt32(dr["RegionID"]), // dr["TerritoryDescription"].ToString())); //dr.Close();
} #endregion
en leerTerritorios es donde me da el pproblema.. no se si sera porque la reigonID = no la paso bien.. alguien puede ayudarme. Gracias.
|
|
|
En línea
|
|
|
|
[D4N93R]
Wiki
Desconectado
Mensajes: 1.646
My software never has bugs. Its just features!
|
Que clase es: SqlAccesoDatos. Puedes publicarla aca.. saludos
|
|
|
En línea
|
|
|
|
usuani
Desconectado
Mensajes: 55
|
SqlAccesoDaros es una clase que tengo en la blblioteca.. sirve para hacer la consulta.. pero ese no es el problen la he utilizado + veces y va bien..y en otra parte de esta aplicacion tambien la uso y funciona..
|
|
|
En línea
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Idem, se me hace que hay una mala implementación de los métodos en la clase/capa de datos. Tienes un método para añadir parámetros? y el retorno? Como han dicho antes, publica la clase SqlAccesoDatos, que sin ver la manera en la que ejecutas conexion y consulta es imposible Saludos
|
|
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
usuani
Desconectado
Mensajes: 55
|
public static void AñadirParámetro(string Nombre, SqlDbType Tipo, object Valor) { if (cmd == null) cmd = new SqlCommand(); cmd.Parameters.Add(Nombre, Tipo); cmd.Parameters[cmd.Parameters.Count - 1].Value = Valor; }
public static void AñadirParámetro(string Nombre, SqlDbType Tipo, int Tamaño, object Valor) { if (cmd == null) cmd = new SqlCommand(); cmd.Parameters.Add(Nombre, Tipo, Tamaño); cmd.Parameters[cmd.Parameters.Count - 1].Value = Valor; }
public static void AñadirParámetro(string Nombre, SqlDbType Tipo, ParameterDirection Dirección) { if (cmd == null) cmd = new SqlCommand(); cmd.Parameters.Add(new SqlParameter()); cmd.Parameters[cmd.Parameters.Count - 1].ParameterName = Nombre; cmd.Parameters[cmd.Parameters.Count - 1].Size = 1; cmd.Parameters[cmd.Parameters.Count - 1].SqlDbType = Tipo; cmd.Parameters[cmd.Parameters.Count - 1].Direction = Dirección; }
Tengo una clase de territorio donde creo que el constructor deberia recibir el codigo de la region que tengo leida (para leer solo los territorios de dicha region) en un combobox. El ploblema es como le paso ese codigode region..porque el program falla porque el codigo debe se nulo...
|
|
|
En línea
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Te falto publicar el ObtenerDataReader Y sigo sin ver la lógica, creas un sqlcommand, pero nunca lo retornas ni nada, dices que eso te funciona
|
|
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
[D4N93R]
Wiki
Desconectado
Mensajes: 1.646
My software never has bugs. Its just features!
|
Te falto publicar el ObtenerDataReader Y sigo sin ver la lógica, creas un sqlcommand, pero nunca lo retornas ni nada, dices que eso te funciona Exacto, yo tampoco entiendo. Publica la clase completa.. Un saludo
|
|
|
En línea
|
|
|
|
usuani
Desconectado
Mensajes: 55
|
public static SqlDataReader ObtenerDataReader(string Sql) { if (tipoComando == CommandType.Text) return obtenerDataReader(Sql, true); else return sp_obtenerDataReader(Sql, true); }
public static SqlDataReader ObtenerDataReader(string Sql, bool LimpiarParámetros) { if (tipoComando == CommandType.Text) return obtenerDataReader(Sql, LimpiarParámetros); else return sp_obtenerDataReader(Sql, LimpiarParámetros); }
|
|
|
En línea
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Perdón si ofendo a alguien! , pero no creo que eso haya funcionado alguna vez, o tienes mucho más código en lo que no estas publicando, o has recortado de todas partes. En los métodos de ObtenerDataReader haces uso la variable tipoComando, variable que nunca declaras ni pasas por parámetros, así que seguro ahí se parte ... y aunque solucionaras eso deberías de tener un buffer overflow y el VS debería de notificartelo, porque entras en un bucle infinito de llamadas a dicho método ... en los retornos tienes una nueva llamada [Edito]Perdón, no hay BOF, los retornos tienen un "sp_" delante ... ahora hace falta ese método ... lo dicho, no podemos ayudarte si tienes métodos, que llaman a una clase, que tiene "X" método, que llama a otro método, que ... [re-Edito]Ahora veo que solo el segundo retorno tiene el "sp_", así que descarto lo anterior, si debería de "partirse" Saludos
|
|
« Última modificación: 11 Marzo 2010, 21:02 pm por Novlucker »
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
[D4N93R]
Wiki
Desconectado
Mensajes: 1.646
My software never has bugs. Its just features!
|
Ahora veo que solo el segundo retorno tiene el "sp_", así que descarto lo anterior, si debería de "partirse" Nop, Fíjate en el nombre public static SqlDataReader ObtenerDataReader Y el que llama dentro de éste es: obtenerDataReader, La O de obtener es minúscula, y C# es case sensitive. Aun le falta por publicar ese método: obtenerDataReader ..
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Consulta: ¿Se puede crear una conexion de red desde VB6?
Programación Visual Basic
|
thecirujano
|
5
|
3,733
|
14 Enero 2011, 14:57 pm
por 79137913
|
|
|
Un malware lleva espiándonos desde 2008
Noticias
|
wolfbcn
|
0
|
1,302
|
24 Noviembre 2014, 12:53 pm
por wolfbcn
|
|
|
consulta reporte crystal 10 desde vb6
Programación Visual Basic
|
g_cury
|
0
|
1,552
|
9 Abril 2015, 19:16 pm
por g_cury
|
|
|
Duda Login SQL_Server 2008, Must_Change desde la aplicación
.NET (C#, VB.NET, ASP)
|
Yaldabaot
|
2
|
2,077
|
26 Junio 2015, 07:27 am
por Yaldabaot
|
|
|
Problemas con Consulta SQL
Programación Visual Basic
|
jack06
|
4
|
2,663
|
30 Mayo 2017, 02:33 am
por jack06
|
|