
08/04/2009, 03:48
|
 | | | 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);
} |