Foros del Web » Programación para mayores de 30 ;) » .NET »

Clase consulta SQL C#

Estas en el tema de Clase consulta SQL C# en el foro de .NET en Foros del Web. Hola a todos, Estoy empezando con C# y estoy haciendo una aplicación donde quiero crear una clase con la que poder hacer consultas SQL con ...
  #1 (permalink)  
Antiguo 03/05/2013, 13:48
 
Fecha de Ingreso: enero-2013
Mensajes: 54
Antigüedad: 11 años, 3 meses
Puntos: 0
Clase consulta SQL C#

Hola a todos,

Estoy empezando con C# y estoy haciendo una aplicación donde quiero crear una clase con la que poder hacer consultas SQL con mi BBDD Oracle. He hecho esto;

Código C++:
Ver original
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using Oracle.DataAccess.Client;
  6.  
  7. namespace ProyectoAlmacen
  8. {
  9.     class ConsultaSQL
  10.     {
  11.         //Definción de variables
  12.         private ConectarBBDD dR;
  13.         private OracleConnection conexion;
  14.  
  15.         //Método que devuelve el OracleDataReader resultante de la consulta
  16.         public OracleDataReader queryConsultaSQL (String var, String sql)
  17.         {
  18.             //Inicialización de la conexión
  19.             dR = new ConectarBBDD();
  20.             conexion = dR.Conexión();
  21.  
  22.             //Consulta SQL
  23.             OracleCommand query = new OracleCommand(sql, conexion);
  24.             query.ExecuteNonQuery();
  25.             OracleDataReader reader = query.ExecuteReader();
  26.  
  27.             //Cierre conexión
  28.             conexion.Close();
  29.  
  30.             //Retorna el resultado de la busqueda
  31.             return reader;
  32.         }
  33.     }
  34. }

Luego realizo la consulta en el Formulario de la siguiente forma;

Código C++:
Ver original
  1. private ConsultaSQL consulta = new ConsultaSQL();
  2.  
  3. String var = comboBoxTipo.Text;
  4.  
  5. sql = "SELECT CodTipo FROM TipoTratam WHERE Nombre = '" + var + "'";
  6. OracleDataReader rs = consulta.queryConsultaSQL(var, sql);
  7. if (rs.HasRows)
  8.      codigoTipo = Convert.ToInt16(rs["CodTipo"]);

El problema es que me da error (ora-00900 invalid sql statement), el String sql no es correcto, se que estoy haciendo algo mal, seguramente al pasar las variables pero no consigo resolverlo.

Espero que usteden puedan ayudarme

Muchas gracias
  #2 (permalink)  
Antiguo 04/05/2013, 11:27
 
Fecha de Ingreso: junio-2012
Mensajes: 90
Antigüedad: 11 años, 10 meses
Puntos: 2
Respuesta: Clase consulta SQL C#

Esto es lo que yo utilizo, por lo general requiero siempre utilizar StoredProcedures, con esto le cargo una sortedlist que puede ser de n parametros y el nombre del StoredProcedure, ademas de setear la string con.

Espero lo puedas adaptar a tus necesidades!

Código C:
Ver original
  1. public static object ExecuteStoreProcedure(string StoreProcedureName, SortedList parameters)
  2. {
  3.     object value = null;
  4.     string parameterName = "";
  5.     System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
  6.     cmd.CommandText = StoreProcedureName;
  7.     cmd.Connection = new System.Data.SqlClient.SqlConnection("AQUI VA TU String Conn.......");
  8.     cmd.CommandType = CommandType.StoredProcedure;
  9.     try {
  10.         for (int index = 0; index <= parameters.Count - 1; index++) {
  11.             parameterName = "";
  12.             parameterName = parameters.GetKey(index);
  13.             if (!parameterName.Contains("@")) {
  14.                 parameterName = "@" + parameterName;
  15.             }
  16.  
  17.             if ((parameters[parameters.GetKey(index)] == null)) {
  18.                 parameters[parameters.GetKey(index)] = DBNull.Value;
  19.             }
  20.             cmd.Parameters.AddWithValue(parameters.GetKey(index), parameters[parameters.GetKey(index)]);
  21.         }
  22.         cmd.Connection.Open();
  23.         value = cmd.ExecuteScalar();
  24.     } catch (Exception ex) {
  25.         Interaction.MsgBox(ex.Message, MsgBoxStyle.Critical);
  26.     } finally {
  27.         cmd.Connection.Close();
  28.         cmd.Connection.Dispose();
  29.         cmd.Dispose();
  30.     }
  31.     return value;
  32. }

Etiquetas: bd, clase, conexion, formulario, sql
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 20:50.