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

Consulta SQL sencilla de ASP que funcione en ASP.net

Estas en el tema de Consulta SQL sencilla de ASP que funcione en ASP.net en el foro de .NET en Foros del Web. Hola amigos, programo en ASP y por necesidad he tenido que utilizar un fichero en ASP.net. En este fichero necesito ejecutar un código ASP y ...
  #1 (permalink)  
Antiguo 04/06/2008, 11:21
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 20 años, 5 meses
Puntos: 1
Consulta SQL sencilla de ASP que funcione en ASP.net

Hola amigos, programo en ASP y por necesidad he tenido que utilizar un fichero en ASP.net. En este fichero necesito ejecutar un código ASP y no se como hacerlo.

El código es este:

set cn = Server.CreateObject("ADODB.Connection");
cn.Open application("cn_str")
cn.execute("UPDATE Anuncios SET imagen"+N+" = '" & newFileName & "' WHERE anuncioId="+anuncioId);


Si os fijais, lo que hago con ASP es crear el objeto ADOBD, luego abro la base de datos, que la cargo en un objeto de aplicacion en el global.asa, se llama application("cn_str"), y después simplemente ejecuto el SQL.

Necesito que esto mismo me funcione tal y como esta en el fichero ASP.net.

Agradezco desde ya la ayuda
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...
  #2 (permalink)  
Antiguo 04/06/2008, 16:12
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 20 años, 5 meses
Puntos: 1
Respuesta: Consulta SQL sencilla de ASP que funcione en ASP.net

¿Nadie que quiera perder cinco minutos en decirme como se hace un simple UPDATE en NET?
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...
  #3 (permalink)  
Antiguo 08/06/2008, 13:47
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 20 años, 5 meses
Puntos: 1
Respuesta: Consulta SQL sencilla de ASP que funcione en ASP.net

Bueno, me ha tocado dedicar un tiempo a enterarme un poco de como va esto del C# y el ASP.net y he deducido que con este código debería de actualizarme la base de datos:

En la cabecera del .aspx:

<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDb" %>

Para actualizar:

Conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\Inetpub\\wwwroot\\BD.mdb"
OleDbConnection objOleDbConnection = new OleDbConnection(Conn);
OleDbCommand objOleDbCommand = new OleDbCommand("UPDATE Anuncios SET imagen"+N+" = '" + newFileName + "' WHERE anuncioId="+anuncioId);

objOleDbConnection.Open();
objOleDbCommand.ExecuteNonQuery();
objOleDbConnection.Close();

Pero no condigo que me funcione, me da un error:
"System.InvalidOperationException: ExecuteNonQuery:etc,etc"

A ver si un alma caritativa me ayuda con este tema...
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...
  #4 (permalink)  
Antiguo 08/06/2008, 14:08
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Consulta SQL sencilla de ASP que funcione en ASP.net

a tu command.Connectionn=objOleDbConnection
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #5 (permalink)  
Antiguo 08/06/2008, 14:14
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 20 años, 5 meses
Puntos: 1
Respuesta: Consulta SQL sencilla de ASP que funcione en ASP.net

Bueno, ya he conseguido que funcione, parece mentira, algo tan simple como un UPDATE y lo que se complica. Dejo el código para alguien que por fuerza mayor tenga que acudir a ASP.net combinado con C# y no quiera perder tiempo en aprender una programación que seguramente no volverá a precisar en meses, como me sucede a mi:

Es este:

string strCadenaConexion= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\Inetpub\\wwwroot\\www\\BD\\69kms.mdb";//esta es la cadena de conexion para conectarse a la base de datos
OleDbConnection objConn = new OleDbConnection(strCadenaConexion);
string strCommand="UPDATE Anuncios SET imagen"+N+" = '" + newFileName + "' WHERE anuncioId="+anuncioId;//Esta es la consulta SQL
OleDbCommand cmdConsultar = new OleDbCommand(strCommand, objConn);
cmdConsultar.CommandType = CommandType.Text;
objConn.Open();
cmdConsultar.ExecuteNonQuery();// o cmdConsultar.ExecuteScalar(); segun el caso, google le dice los casos
objConn.Close();//Y con esto cerramos, cuidadín, que el C# requiere ; al final de cada linea

Igual para INSERT o DELETE, así de sencillo y os juro que apenas hayu codigo de ejemplo de esta estupidez, eso si, "ladrillos" y coñazos de artículos hay pa aburrir.

A otra cosa mas interesante...
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...
  #6 (permalink)  
Antiguo 07/04/2009, 03:20
 
Fecha de Ingreso: diciembre-2005
Mensajes: 3
Antigüedad: 18 años, 5 meses
Puntos: 0
Pregunta Respuesta: Consulta SQL sencilla de ASP que funcione en ASP.net

Tengo una duda, a la hora de hacer la consulta en C# se puede hacer con un usign pasando los parámetros sustituyendo las ? por los parámetros enviados de esta forma :

@"SELECT *
FROM TABLA
WHERE ID_USUARIO = ?
AND ID_ANIO = ?";


¿En ASP.NET se puede hacer algo parecido o solo concatenando la consulta?

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

Yo veo mucho más cómodo usar procedimientos almacenados... Hacer querys en código, a parte que se puede, es una guarrada..., imaginar que teneis que modificar una sola cosa....

Si quereis código me he hecho unas funciones para llamar a procedimientos almacenados y es posible que os sirvan...
  #8 (permalink)  
Antiguo 08/04/2009, 03:39
 
Fecha de Ingreso: diciembre-2005
Mensajes: 3
Antigüedad: 18 años, 5 meses
Puntos: 0
Respuesta: Consulta SQL sencilla de ASP que funcione en ASP.net

Yo si, por favor mandamelo si puedes a [email protected]

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

Si te parece bien, lo copiaré aquí, si te lo mando por correo solo lo podrás usar tu, y no habrá nadie más que lo pueda ver en un futuro...
  #10 (permalink)  
Antiguo 08/04/2009, 03:48
Avatar de aloke  
Fecha de Ingreso: abril-2008
Mensajes: 30
Antigüedad: 16 años
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);

}
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 07:06.