sustituir campos en tiempo de ejecuci贸n
Tengo un fichero XML con la configuraci贸n de un select. Es decir, tengo una clase llamada VI, y dentro tengo varios campos (idVi, nombre,SQLcommand...). Y claro necesito hacer un select generico, que en tiempo de ejecuci贸n reemplace esos valores. Es decir tendre en un XML el siguiente SQL
"select * from tables where idVi="+VI.idVI+"";
Es decir que en tiempo de ejecucion , me abrira el fichero xml y leera esa linea y la insertara en el campo SQLcommand. Pero claro, como es en tiempo de ejecucion me cargara el string tal cual, sin reemplazarme el campo idVI. Como lo puedo hacer? reflection?
"select * from tables where idVi="+VI.idVI+"";
Es decir que en tiempo de ejecucion , me abrira el fichero xml y leera esa linea y la insertara en el campo SQLcommand. Pero claro, como es en tiempo de ejecucion me cargara el string tal cual, sin reemplazarme el campo idVI. Como lo puedo hacer? reflection?
Buenas,
Reflexion podria ser una soluci贸n pero creo que demasiado compleja para lo que quieres. Podrias usar parametros en la consulta sql de la siguiente manera:
Primero en el xml yo guardaria algo parecido a :
select * from table where id=@id
i en el codigo:
//creamos la conexion
SqlConnection conn = new SqlConnection("cadena de conexion");
//creamos el command con la sentencia sql
SqlCommand cmd = new SqlCommand("select * from table where id=@id");
//creamos un parametro, le damos un nombre i definimos el tipo
SqlParameter param = new SqlParameter("@id",System.Data.SqlDbType.Int);
//le asignamos el valor que tendra
param.Value = VALOR
El funcionamiento de lso parametros es parecido al de las stored procedures de sql server. Lo que hara es reemplazar el @id por el valor entrado. Ademas, si hubiera algun intento de sqlinjection, haciendolo con parametros se evitaria automaticamente, ya que escapa automaticamente los caracteres peligrosos.
Suerte
Reflexion podria ser una soluci贸n pero creo que demasiado compleja para lo que quieres. Podrias usar parametros en la consulta sql de la siguiente manera:
Primero en el xml yo guardaria algo parecido a :
select * from table where id=@id
i en el codigo:
//creamos la conexion
SqlConnection conn = new SqlConnection("cadena de conexion");
//creamos el command con la sentencia sql
SqlCommand cmd = new SqlCommand("select * from table where id=@id");
//creamos un parametro, le damos un nombre i definimos el tipo
SqlParameter param = new SqlParameter("@id",System.Data.SqlDbType.Int);
//le asignamos el valor que tendra
param.Value = VALOR
El funcionamiento de lso parametros es parecido al de las stored procedures de sql server. Lo que hara es reemplazar el @id por el valor entrado. Ademas, si hubiera algun intento de sqlinjection, haciendolo con parametros se evitaria automaticamente, ya que escapa automaticamente los caracteres peligrosos.
Suerte
