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

Algun ejemplo

Estas en el tema de Algun ejemplo en el foro de .NET en Foros del Web. Voy a hacer una pagina de consulta para que el usuario pueda hacer busquedas de todo tipo. Estoy pensando en hacer una sql segun lo ...
  #1 (permalink)  
Antiguo 29/06/2005, 03:54
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años, 1 mes
Puntos: 1
Algun ejemplo

Voy a hacer una pagina de consulta para que el usuario pueda hacer busquedas de todo tipo.
Estoy pensando en hacer una sql segun lo que ponga el usuario que quiere buscar y luego cargarlo todo en un dataset y luego mostrarlo en un datagrid.

Algun consejo o ejemplo de como hacer esto???

gracias.
  #2 (permalink)  
Antiguo 29/06/2005, 03:58
 
Fecha de Ingreso: junio-2005
Mensajes: 15
Antigüedad: 18 años, 10 meses
Puntos: 0
Puedes utilizar us SqlDataAdapter para montar la consulta (SelectCommand),
Después montalo en un Dataset con el método Fill del DataAdapter y posteriormente asigna el DataSet al Datasource del DataGrid, ¿ DataClaro ? ;)
  #3 (permalink)  
Antiguo 29/06/2005, 04:03
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años, 1 mes
Puntos: 1
si eso es lo que pensaba hacer.
La cuestion es como le paso la sql recogida de varios campos.
  #4 (permalink)  
Antiguo 29/06/2005, 04:07
 
Fecha de Ingreso: junio-2005
Mensajes: 149
Antigüedad: 18 años, 11 meses
Puntos: 0
¿A que te refieres con sql recogida de varios campos?
¿A meter campos recogidos dentro de la select?
  #5 (permalink)  
Antiguo 29/06/2005, 04:07
 
Fecha de Ingreso: junio-2005
Mensajes: 15
Antigüedad: 18 años, 10 meses
Puntos: 0
La propiedad SelectCommand del DataAdapter tiene a su vez una propiedad CommandText donde se almacena la consulta SQL.
Ten en cuenta que no se puede modificar directamente esta propiedad en el DataAdapter, debes crearte un SqlCommand, ponerle la conexión y el CommandText que desees y asignarle el Command entero al DataAdapter.SelectCommand, sino no furula.
  #6 (permalink)  
Antiguo 29/06/2005, 04:45
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años, 1 mes
Puntos: 1
Yo lo que tengo es un formulario con un monton de campo que son los que he de añadirle a la sql.

Algo asi
strsql=strsql+" and Inventario.IdEstado = "+estado.text
strsql=strsql+" and Inventario.PartNumber like '"+partnumber.text+"'"

Y luego toda la sql añadiirsela al commandtext
  #7 (permalink)  
Antiguo 29/06/2005, 05:30
 
Fecha de Ingreso: junio-2005
Mensajes: 15
Antigüedad: 18 años, 10 meses
Puntos: 0
Pues eso..

Dim Cmm as new SqlCommand("Conexión",strsql)
Me.DataAdapter.SelectCommand = Cmm
  #8 (permalink)  
Antiguo 29/06/2005, 08:06
Avatar de splinter  
Fecha de Ingreso: junio-2004
Ubicación: Misantla,Ver.Mexico
Mensajes: 181
Antigüedad: 19 años, 10 meses
Puntos: 0
Hola

Lo he hecho asi, usando un SP que acepte los parametros de tus campos, en transacsql armo la sentencia select con los parametros y ejecuto la cadena armada con el comando
EXEC [cadena SQL]

*uso IF para obtener los parametos y concatenar
* tengo string para las partes del select (campos,where,order)
*concateno todo y ejecuto

si necesitas el ejemplo de codigo lo agrego


-- DECLARACION
CREATE PROCEDURE Proc_Buscador
@Enable_date int=0,
@Fec1 char(20)='1900-01-01 12:00:00',
@Fec2 char(20)='1900-01-01 12:00:00',
@BU_ID int=0,
...
...

/*CONDICIONES PARA OPCIONES*/
IF @Options =0
BEGIN
IF @BU_ID =0
SELECT @COLBU_ID=''
ELSE
SELECT @COLBU_ID='BU_ID IN ('+ RTRIM(CONVERT(CHAR(5),@BU_ID)) +')'

...
...
...
IF @opcRepeat =0 --NO REPETIDOS
BEGIN
SELECT @Columna = 'SELECT [Issue_No], CONVERT(CHAR(10),[DATE_REQUEST],101) AS DATE_REQUEST,[BU_NAME],[LINE], [Assembly], [Comments], [EC_No], [TC_No],[CODEDESC],[ROOT_CAUSE], [Info], [ECStatus], [Parent], [Repeat],[AGILE_STATUS],[EC_CREATE_DATE] FROM VIEW_BOM_DataFindings_Rec WHERE Repeat IS NULL AND PARENT=0 ' + dbo.concatAND(@COLBU_ID) + RTRIM(@COLBU_ID) +dbo.concatAND(@COLFamily_ID) + RTRIM(@COLFamily_ID) + dbo.concatAND(@COLCode_ID) + RTRIM(@COLCode_ID) +dbo.concatAND(@COLRoot_Cause_ID)+ RTRIM(@COLRoot_Cause_ID) + dbo.concatAND(@COLECstatus_ID)+ RTRIM(@COLECstatus_ID) + dbo.concatAND(@COLRequest_date)+ RTRIM(@COLRequest_date)
SELECT @ColumnaCount = ' ;SELECT COUNT([ISSUE_NO]) AS TOTAL_ROWS FROM VIEW_BOM_DataFindings_Rec WHERE Repeat IS NULL AND PARENT=0 ' + dbo.concatAND(@COLBU_ID) + RTRIM(@COLBU_ID) +dbo.concatAND(@COLFamily_ID) + RTRIM(@COLFamily_ID) + dbo.concatAND(@COLCode_ID) + RTRIM(@COLCode_ID) +dbo.concatAND(@COLRoot_Cause_ID)+ RTRIM(@COLRoot_Cause_ID) + dbo.concatAND(@COLECstatus_ID)+ RTRIM(@COLECstatus_ID) + dbo.concatAND(@COLRequest_date)+ RTRIM(@COLRequest_date)
END

--Ejecutando la consulta
EXEC(@Columna + @ColumnaCount)




Disculpa si el ejemplo esta dividido, pero espero te sirva.
aunque se puede optimizar, cosa que no he tenido tiempo
de todos modos cualquier duda aqui te leo




saludos

Última edición por splinter; 29/06/2005 a las 08:24
  #9 (permalink)  
Antiguo 29/06/2005, 08:12
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años, 1 mes
Puntos: 1
pues me vendria muy bien

Si pudieras poner el ejemplo mucho mejor, asi veo bien como lo haces.
Xq yo pensaba hacerlo directamente en el codigo todo y con transact dicen ke va mas rapido.


gracias
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 01:29.