Ver Mensaje Individual
  #10 (permalink)  
Antiguo 08/04/2009, 03:48
Avatar de aloke
aloke
 
Fecha de Ingreso: abril-2008
Mensajes: 30
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Consulta SQL sencilla de ASP que funcione en ASP.net

ATENCION : Éste código sirve para SLQ SERVER 2005 (EN MI CASO EXPRESS)

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections.Generic;
using System.Data.SqlClient;

/// <summary>
/// Descripción breve de ConectoraBBDD
/// </summary>
public class ConectoraBBDD
{
public struct TipoDato
{
public string nombre;
public SqlDbType tipo;
public object valor;
}


static string _CadenaConexion = "cadena de conexion que sea";
static SqlConnection sconnection;
static SqlCommand cmd;
static SqlParameter[] param;
static DataSet ds;
static SqlDataAdapter da;

static private void CrearConexion()
{
sconnection = new SqlConnection(_CadenaConexion);

cmd = new SqlCommand();
ds = new DataSet();
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = sconnection;

}

static private void ejecutarProcedimientoAlmacenadoSinValoresSalidaCon Parametros(List<TipoDato> listadatos, string nombreProcedimiento)
{
CrearConexion();
Console.Write(nombreProcedimiento);
param = new SqlParameter[listadatos.Count];
cmd.CommandText = nombreProcedimiento;


for (int i = 0; i < listadatos.Count; i++)
{
param[i] = new SqlParameter(listadatos[i].nombre, listadatos[i].tipo);
param[i].Value = listadatos[i].valor;

}

cmd.Parameters.AddRange(param);

da = new SqlDataAdapter(cmd);
da.Fill(ds);
}

static private DataTable ejecutarProcedimientoAlmacenadoConValoresSalidaCon Parametros(List<TipoDato> listadatos, string nombreProcedimiento)
{
CrearConexion();
param = new SqlParameter[listadatos.Count];
cmd.CommandText = nombreProcedimiento;

for (int i = 0; i < listadatos.Count; i++)
{
param[i] = new SqlParameter(listadatos[i].nombre, listadatos[i].tipo);
param[i].Value = listadatos[i].valor;
}

cmd.Parameters.AddRange(param);

da = new SqlDataAdapter(cmd);
da.Fill(ds);



return ds.Tables[0];
}

static private DataTable ejecutarProcedimientoAlmacenadoConValoresSalidaSin Parametros(string nombreProcedimiento)
{
CrearConexion();
cmd.CommandText = nombreProcedimiento;
da = new SqlDataAdapter(cmd);
da.Fill(ds);

return ds.Tables[0];
}




//aqui dejo un ejemplo de como meter los datos de una persona
//usando una de las funciones de arriba.
static public void insertarPersona(string nombre,string ap1,string ap2,DateTime fechaalta,
string nif, string correoElectr)
{
List<TipoDato> listaparametros = new List<TipoDato>();
TipoDato td = new TipoDato();

td.tipo = SqlDbType.VarChar;
td.nombre = "@nombre";
td.valor = nombre;
listaparametros.Add(td);

td.tipo = SqlDbType.VarChar;
td.nombre = "@apellido1";
td.valor = ap1;
listaparametros.Add(td);

td.tipo = SqlDbType.VarChar;
td.nombre = "@apellido2";
td.valor = ap2;
listaparametros.Add(td);

td.tipo = SqlDbType.SmallDateTime;
td.nombre = "@fecha";
td.valor = fechaalta;
listaparametros.Add(td);

td.tipo = SqlDbType.VarChar;
td.nombre = "@nif";
td.valor = nif;
listaparametros.Add(td);

td.tipo = SqlDbType.VarChar;
td.nombre = "@correoelectronico";
td.valor = correoElectr;
listaparametros.Add(td);



string nombre_proc = "nombre que le has puesto al procedimiento almacenado dentro de la BBDD";

ejecutarProcedimientoAlmacenadoSinValoresSalidaCon Parametros(listaparametros, nombre_proc);

}