Foros del Web » Programando para Internet » ASPX (.net) »

Ventajas/incovenientes uso parametros en ASP.NET con SQLSERVER

Estas en el tema de Ventajas/incovenientes uso parametros en ASP.NET con SQLSERVER en el foro de ASPX (.net) en Foros del Web. Se puede poner de 2 formas: 1º forma (sin usar parametros): INSERT INTO tabla1(ID,Proveedor,Tipo) VALUES (15,'IBM',35) 2ª forma (con uso de parametros): Dim MiSQL As ...
  #1 (permalink)  
Antiguo 26/07/2006, 10:52
 
Fecha de Ingreso: mayo-2006
Mensajes: 178
Antigüedad: 18 años
Puntos: 3
Ventajas/incovenientes uso parametros en ASP.NET con SQLSERVER

Se puede poner de 2 formas:

1º forma (sin usar parametros):
INSERT INTO tabla1(ID,Proveedor,Tipo) VALUES (15,'IBM',35)

2ª forma (con uso de parametros):

Dim MiSQL As String = "INSERT INTO tabla1(ID,Proveedor,Tipo) VALUES (@IDCentro,@Proveedor,@Tipo)"
................
cm.Parameters.Add(New SqlParameter("@IDCentro", SqlDbType.Int, 4)).Value = 15
cm.Parameters.Add(New SqlParameter("@Proveedor", SqlDbType.NVarChar, 50)).Value = "IBM"
cm.Parameters.Add(New SqlParameter("@Tipo", SqlDbType.TinyInt, 1)).Value = 35
.....

La 1ª forma tiene mucho menos código y además permitiría el uso de una clase común, par todas las inserciones que se hagan en la base de datos. Pero que incovenientes tiene, pues veo por ahi, que poca gente lo hace de la forma 1ª.
  #2 (permalink)  
Antiguo 26/07/2006, 16:35
Avatar de sixto.jose  
Fecha de Ingreso: marzo-2006
Ubicación: Medellin-Colombia
Mensajes: 63
Antigüedad: 18 años, 1 mes
Puntos: 0
La forma en que yo trabajo es con parametros por que los datos de los campos de las tablas las menejo por parametros y por medio de una clase les asigno la identidad a cada campo que se le va asignar y me parece que es la mejor forma de trabajar ya que es de uso profesional
__________________
agnus dei
  #3 (permalink)  
Antiguo 27/07/2006, 00:30
 
Fecha de Ingreso: mayo-2006
Mensajes: 178
Antigüedad: 18 años
Puntos: 3
Hay algun ejemplo de clase para trabajar con parametros en SQLServer?

Sin parametros me parece facil.
En la clase:
----------------------------------------------------------
public bool InsertFields()
{
string strCon = this.GetStringConection().ConnectionString;
System.Data.SqlClient.SqlConnection oCon = new System.Data.SqlClient.SqlConnection(strCon);
SqlCommand myCommand = new SqlCommand(this.INSERT_COMMAND.CommandText, this.GetStringConection());

try
{
myCommand.Connection.Open();
myCommand.ExecuteNonQuery();
return true;
}
catch(System.Exception ex)
{
this.ERROR = ex.ToString();
return false;
}
finally
{
oCon.Close();
}
}


en el fichero aspx.cs
--------------------------------------------------
private void cmdInsertar_Click(object sender, System.EventArgs e)
{
System.Data.SqlClient.SqlCommand insert =
new System.Data.SqlClient.SqlCommand("INSERT INTO Personas(Nombre, Direccion, Telefono, Sexo, Escolaridad) VALUES('"
+ this.txtNombre.Text + "','" + this.txtDireccion.Text + "','" + this.txtTel.Text
+ "'," + this.rdbSexo.SelectedValue.ToString() + "," + this.cmbEscolaridad.SelectedValue.ToString() + ")");
oCon.INSERT_COMMAND = insert;
bool status = oCon.InsertFields();
}

ALGUIEN TIENE IDEA DE COMO CON PARAMETROS???. TENGO QUE HACER CONTINUAMENTE INSERCCIONES,.... CUALQUIERA COSA SERÍA DE AYUDA.
  #4 (permalink)  
Antiguo 27/07/2006, 05:25
 
Fecha de Ingreso: febrero-2005
Mensajes: 108
Antigüedad: 19 años, 2 meses
Puntos: 0
Sabeis si hay forma de acceder a la cadena con los parámetros sustituidos ya??...Es decir la cadena Insert into....con los valores de las variables sustituidas, vamos la sentencia SQL que se manda a la base de datos...es que el CommandText pone las variables...sin sustituir los valores...un saludo.
  #5 (permalink)  
Antiguo 27/07/2006, 08:45
Avatar de sixto.jose  
Fecha de Ingreso: marzo-2006
Ubicación: Medellin-Colombia
Mensajes: 63
Antigüedad: 18 años, 1 mes
Puntos: 0
yo lo utilizo de esta forma
hago el insert primero
----------------------------------------------------------------------
str_SQL = "INSERT INTO dbo.Descripcion_Procesos_Equipos VALUES";
str_SQL += "(@IDProceso, @IdEquipo, @OrdenEquipo, @TiempoProceso, @TiempoMontaje, @TiempoDesmontaje, @PorcentajeCantidad )";
------------------------------------------------------------------
sele asigna el query al comando
cmd_comando.CommandText = str_SQL;
------------------------------------------------------------------
y por medio de unas variables que tengo en la clase de identidad le ingreso al parametro el valor

pr_parametro = fac.CreateParameter();
pr_parametro.DbType = DbType.String;
pr_parametro.ParameterName = "@IDProceso";
//pr_parametro.Value = str_mat[0];
pr_parametro.Value = obj_cls_0217_Identidad.str_IDProceso;
cmd_comando.Parameters.Add(pr_parametro);

espero y les sirva de algo

salud2
__________________
agnus dei
  #6 (permalink)  
Antiguo 28/07/2006, 16:36
 
Fecha de Ingreso: noviembre-2003
Ubicación: CHile, 8 Region
Mensajes: 68
Antigüedad: 20 años, 6 meses
Puntos: 0
Dentro de mi practica, y utilizando SQL SERVER, se recomienda utilizar procedimientos almacenados, esto debido a que la compilacion de la consulta la realiza el motor de la BD, y las modificaciones a la consulta es mas facil realizarlas por el lado del SERVIDOR.

Dim ingresarpr As SqlClient.SqlCommand = New SqlClient.SqlCommand()
With ingresarpr
.CommandType = CommandType.StoredProcedure
.CommandText = "NOMBRE_PROCEDIMIENTO_ALMACENADO"
.Parameters.Add("@PARAMETRO1", text1.txt)
.Parameters.Add("@PARAMETRO2", text2.txt)
.Connection = "string_conexion base de datos SQL Server"
End With
__________________
Around The World
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 03:32.