viernes, 27 de junio de 2008

TIP: Customize the format Columns's Data in DataGridView - Personalizar el formato de los datos de columnas en el control DataGridView

* Cuando se quiere dar formato de columnas en un Datagridview con la propiedad DatagridView.Columns("NameColumn").DefaultCellStyle.Format,nos tenemos que percatar si la Configuracion Regional y de idioma de la maquinadonde vamos a ejecutar la aplicacion este a nuestro Idioma y País, si no es asi debemos asignarla para que no haya problemas cuando queramos formatear el tipo de datos de columnas.

Ejmplo : Formateando la columna Monto para valores numericos

'Habiendo verificado la Configuracion Regional y de idioma podremos ejecutar sin problemas
'la siguiente linea de codigo

DatagridView.Columns("Monto").DefaultCellStyle.Format = "N2"

'Ejecutando la linea anterior, no debemos tener ningun Problema

Suerte, hasta el proximo Tip.

lunes, 23 de junio de 2008

Como eliminar datos o filas en un DataGridView enlazado a Datos (por un DataTable,DataSet,etc)

Bueno este caso es clasico de seguro les a pasado a muchos y la solucion es facil.
Cuando ustedes llenan el DataGridView a veces lo hacen con la Propiedad DataSource, que seria :
Ejemplo :
Dim dt as DataTable
dt = oClase.TraerDatos()
DataGridView1.DataSource= dt
Pero al hacer esto amarramos o enlazamos el DataGridView al DataTable y cuando querramos borrar o limpiar el DataGridView con :
DataGridView.Rows.Clear() ' No se podra
Pero si utilizamos :
DataGridView.Columns.Clear()
Si limpia el DataGridView pero con todo y Cabeceras, para solucionar esto haremos un pequeño artificio, quedando el codigo de la siguiente forma :
Dim dt as DataTable
Dim dt2 as DataTable
dt = oClase.TraerDatos()
dt2 = dt.Clone ' Es la Propiedad que me servira para clonar la estructura de un DataTable en este caso las Columnas
DataGridView1.DataSource= dt

Ahora si cuando limpiemos el DataGridView con el evento de un Boton, supongamos que se llame btnLimpiar :
Private Sub btnLimpiar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLimpiar.Click
DataGridView1.Columns.Clear()
DataGridView1.DataSource = dt2
'Para simular que hemos limpiado todas las filas de datos del DataGridView y caso resuelto
End Sub


Hasta la proxima.

jueves, 19 de junio de 2008

How to: Describe columns from table in SQL - Como describir ver los nombres , tipo de datos, tamaño de columnas en una tabla en SQL Server 2000/2005

Hello for this we must use a catalogue of stored procedure called sp_columns, very useful when we want to see the description of the columns (columns such as name, data type, size of the column, etc.) from a table in a database.
Use it and enjoy.

For example, the syntax for sp_columns is:
sp_columns table_name [, table_owner] [, table_qualifier] [, column_name]

To use sp_columns and seek information about a column in particular, can be used:
sp_columns publishers, column_name = @ "pub_id"

This provides the same information that the command with all the specified parameters: sp_columns publishers, "BOD", "pubs2", "pub_id"
It can also be used "null" as a marker of place:
sp_columns publishers, null, null, "pub_id"

---------------------------------------------------------
--En Castellano

Hola para esto debemos usar un procedimiento almacenado de catálogo llamado sp_columns, muy util cuando deseamos ver la descripcion de las columnas(como columns name,data type,tamaño de la columna,etc) de una tabla en una database.
Pruebenlo y disfrutenlo.

Por ejemplo, la sintaxis para sp_columns es:
sp_columns table_name [, table_owner ] [, table_qualifier ] [, column_name ]


Para utilizar sp_columns y buscar información sobre una columna en particular, puede utilizarse:
sp_columns publishers, @column_name = "pub_id"
Esto proporciona la misma información que el comando con todos los parámetros especificados:
sp_columns publishers, "dbo", "pubs2", "pub_id"

También puede utilizarse "null" como marcador de lugar:
sp_columns publishers, null, null, "pub_id"


Hasta la proxima.

How to: Describe fields name from Tables in -Como ver el nombre de Campos, tipo de Campos o longitud de Campos de una Tabla en SQL Server 2000 o 2005

Hello, for this we must use a catalogue stored procedure calls sp_columns, very useful when we want to see the details of the fields (such as name fields, data type, length of the fields, etc.) from a table into a base data.

Use it and enjoy.



For example, the syntax for sp_columns is:

sp_columns table_name [, table_owner] [, table_qualifier] [, column_name]



To use sp_columns and seek information about a column in particular, can be used:

sp_columns publishers, column_name = @ "pub_id"

This provides the same information that the command with all the specified parameters:

sp_columns publishers, "BOD", "pubs2", "pub_id"

It can also be used "null" as a marker of place:

sp_columns publishers, null, null, "pub_id"



-------------------------------------------------------------

--En Castellano

Hola, para esto nosotros debemos usar un procedimiento almacenado de catálogo llamdo sp_columns,muy util cuando queremos ver el detalle de los campos ( como son Nombre de los campos,tipo de datos , longitud de los campos,etc )de una tabla en una base de datos.

Usenlo y disfrutenlo.



Por ejemplo, la sintaxis para sp_columns es:

sp_columns table_name [, table_owner ] [, table_qualifier ] [, column_name ]



Para utilizar sp_columns y buscar información sobre una columna en particular, puede utilizarse:

sp_columns publishers, @column_name = "pub_id"


Esto proporciona la misma información que el comando con todos los parámetros especificados:

sp_columns publishers, "dbo", "pubs2", "pub_id"


También puede utilizarse "null" como marcador de lugar:

sp_columns publishers, null, null, "pub_id"



Hasta la proxima.

sábado, 14 de junio de 2008

Stored Procedure with Text type parameters for handling plots - Procedimiento Almacenado con parametros tipo Text para manejo de tramas

Stored Procedure with Text type parameters for handling plots - Procedimiento Almacenado con parametros tipo Text para manejo de tramas

Hi again perhaps someone have been crossed with the case you need to insert large plots of data in a database and may also specify the number of database (unclear whether you are in a distributed application, this post is an example stored procedure , I hope will be useful to the next.
-----------------------------------------------------------------
Hola de nuevo quizas algunos se hayan cruzado con el caso que necesitan insertar grandes tramas de datos en una base de datos y especificar quizas tambien el numero de base de datos(claro si estamos en una aplicacion distribuida, bueno aca les posteo un procedimiento almacenado de ejemplo, espero les sea de utilidad hasta la proxima.



create proc uspInsertPlotsInDatabase
@CodId varchar(12),
@Plot1 text,
@Plot2 text,
@Plot3 text,
@Plot4 text,
@Plot5 text,
@Plot6 text,
@Plot7 text,
@dDate datetime,
@CodUser varchar(4),
@Plot8 text,
@Plot9 text,
@database varchar(50),
@NroDB varchar(4)
as
set nocount on
if len(@database)>0
exec( 'insert into '+@database+''+@NroDB+'..Plots(cCodId,cPlot1,cPlot2,cPlot3,cPlot4,cPlot5,cPlot6,cPlot7,dDate,cCodUser,cPlot8,cPlot9)'
+ ' values (' + @CodId + ',' + @Plot1 + ',' + @Plot2 + ',' + @Plot3 + ' '
+ ' ,' + @Plot4 + ',' + @Plot5 + ',' + @Plot6 + ','
+ ' '+ @Plot7 + ',' + @dDate + ',' + @CodUser + ',' + @Plot8 + ',' + @Plot9 + ')')
else
exec( 'insert into Plots(cCodId,cPlot1,cPlot2,cPlot3,cPlot4,cPlot5,cPlot6,cPlot7,dDate,cCodUser,cPlot8,cPlot9)'
+ ' values (' + @CodId + ',' + @Plot1 + ',' + @Plot2 + ',' + @Plot3 + ' '
+ ' ,' + @Plot4 + ',' + @Plot5 + ',' + @Plot6 + ','
+ ' '+ @Plot7 + ',' + @dDate + ',' + @CodUser + ',' + @Plot8 + ',' + @Plot9 + ')')

-----------------------------------------------------------------

create proc uspInsertaTramasenBaseDatos
@CodId varchar(12),
@Trama1 text,
@Trama2 text,
@Trama3 text,
@Trama4 text,
@Trama5 text,
@Trama6 text,
@Trama7 text,
@dFecha datetime,
@CodUser varchar(4),
@Trama8 text,
@Trama9 text,
@BaseDatos varchar(50),
@NroBD varchar(4)
as
set nocount on
if len(@BaseDatos)>0
exec( 'insert into '+@BaseDatos+''+@NroBD+'..Tramas(CodId,Trama1,Trama2,Trama3,Trama4,Trama5,Trama6,Trama7,dfecha,cCodUsuer,Trama8,Trama9)'
+ ' values (' + @CodId + ',' + @Trama1 + ',' + @Trama2 + ',' + @Trama3 + ' '
+ ' ,' + @Trama4 + ',' + @Trama5 + ',' + @Trama6 + ','
+ ' '+ @Trama7 + ',' + @dFecha + ',' + @CodUser + ',' + @Trama8 + ',' + @Trama9 + ')')
else
exec( 'insert into Tramas(CodId,Trama1,Trama2,Trama3,Trama4,Trama5,Trama6,Trama7,dfecha,cCodUsuer,Trama8,Trama9)'
+ ' values (' + @CodId + ',' + @Trama1 + ',' + @Trama2 + ',' + @Trama3 + ' '
+ ' ,' + @Trama4 + ',' + @Trama5 + ',' + @Trama6 + ','
+ ' '+ @Trama7 + ',' + @dFecha + ',' + @CodUser + ',' + @Trama8 + ',' + @Trama9 + ')')

jueves, 12 de junio de 2008

Custom Stored Procedure Complete II - Procedimiento Almacenado Personalizado Completo II

Hello, my last post about a custom stored procedure was limited when we want to work with INNER JOIN, so this is more comprehensive because it contains a parameter called tablesInner which I used to receive all INNER JOIN we want to add to the query. Any question leave me a comment.
--------------------------------------------------------------------------------------------
Hola, mi último post acerca de un procedimiento almacenado personalizado se limitaba cuando queremos trabajar con INNER JOIN, por lo que este es más completo porque contiene un parámetro llamado tablesInner que he usado para recibir todos los INNER JOIN que queremos añadir a la consulta. Cualquier pregunta me dejan un comentario.


--Custom Stored Procedure II - Contains a parameter called tablesInner
--which I used to receive all INNER JOIN we want to add to the query
create proc uspExecuteMultiSentences
@fields varchar(500),
@database varchar(80),
@table varchar(50),
@filters varchar(500),
@Nrodatabase varchar(4)='',
@tablesInner varchar(500)=''
as
set nocount on
declare @sSQL varchar(1700)
If Len(@tablesInner) = 0
begin
If Len(@database) > 0
If Len(@Nrodatabase)>0
set @sSQL = 'SELECT '+ @fields + ' FROM ' + @database + '' + @Nrodatabase + '..' + @table + ' WHERE ' + @filters + ''
else
set @sSQL = 'SELECT '+ @fields + ' FROM ' + @database + '..' + @table + ' WHERE ' + @filters + ''
Else If Len(@database)= 0
set @sSQL = 'SELECT '+ @fields + ' FROM '+ @table + ' WHERE ' + @filters + ''
end
Else
begin
If Len(@database) > 0
If Len(@Nrodatabase)>0
set @sSQL = 'SELECT '+ @fields + ' FROM '+ @database + ''+ @Nrodatabase + '..'+ @table + ' '+ @tablesInner + ' WHERE '+ @filters + ''
else
set @sSQL = 'SELECT '+ @fields + ' FROM '+ @database + '..'+ @table + ' '+ @tablesInner + ' WHERE '+ @filters + ''
Else If Len(@database)= 0
set @sSQL = 'SELECT '+ @fields + ' FROM '+ @table + ' '+ @tablesInner + ' WHERE '+ @filters + ''
end
exec(@sSQL)

--Executing Custom Stored Procedure
exec uspExecuteMultiSentences 'C.cCodCus,C.cNamPer,C.cDirPer,C.cTelPer,C.cDoc', '', 'DetailCustomer DC ', ' DC.cTypeDetCus = ''FR'' and DC.cCodDetCus = ''0123456789''', '', ' INNER JOIN dbCustomer..Customer C ON DC.cCodCus = C.cCodCus '
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------

--Procedimiento Almacenado Personalizado II - El cual contiene
--un parametro llamado tablasInner que utilizo para recibir todos los INNER JOIN

--para la consulta
create proc uspEjecutaMultiSentencia
@campos varchar(500),
@basedatos varchar(80),
@tabla varchar(50),
@filtros varchar(500),
@Nrobasedatos varchar(4)='',
@tablasInner varchar(500)=''
as
set nocount on
declare @sSQL varchar(1700)
If Len(@tablasInner) = 0
begin
If Len(@basedatos) > 0
IF Len(@codAge)>0
set @sSQL = 'SELECT '+ @campos + ' FROM ' + @basedatos + '' + @Nrobasedatos+ '..' + @tabla + ' WHERE ' + @filtros + ''
else
set @sSQL = 'SELECT '+ @campos + ' FROM ' + @basedatos + '..' + @tabla + ' WHERE ' + @filtros + ''
Else If Len(@basedatos)= 0
set @sSQL = 'SELECT '+ @campos + ' FROM '+ @tabla + ' WHERE ' + @filtros + ''
end
Else
begin

If Len(@basedatos) > 0
IF Len(@codAge)>0
set @sSQL = 'SELECT '+ @campos + ' FROM '+ @basedatos + ''+ @Nrobasedatos+ '..'+ @tabla + ' '+ @tablasInner + ' WHERE '+ @filtros + ''
else
set @sSQL = 'SELECT '+ @campos + ' FROM '+ @basedatos + '..'+ @tabla + ' '+ @tablasInner + ' WHERE '+ @filtros + ''
Else If Len(@basedatos)= 0
set @sSQL = 'SELECT '+ @campos + ' FROM '+ @tabla + ' '+ @tablasInner + ' WHERE '+ @filtros + ''
end
exec(@sSQL)
--Ejecutando Procedimiento Almacenado
exec uspEjecutaMultiSentencia 'C.cCodPer,C.cNomPer,C.cDirPer,C.cTelPer,C.cDoc', '', 'DetalleCliente DC ', ' DC.cTipoDetalle = ''FR'' and DP.cCodDet = ''0123456789''', '', ' INNER JOIN dbCliente..Cliente C ON DC.cCodPer = C.cCodPer '

See you.Happy Coding – Nos vemos. Feliz programacion

martes, 10 de junio de 2008

Custom Stored Procedure which parameters are fields_name, schema_name, database_name,table _name and filters – Procedimiento Almacenado Personalizado

Custom Stored Procedure which parameters are fields_name, schema_name, database_name,table _name and filters – Procedimiento Almacenado Personalizado cuyos parámetros que recibe son los Campos, esquema, base de datos, tabla y filtros

Example – Ejemplo : Let’s go to see the example – Veamos el ejemplo
As Fields = 'cCodCta,cEstadoCta,dAperturaCta',
Como Campos = 'cCodCta,cEstadoCta,dAperturaCta',
---------------------------------------------------------------------
As Schema = 'Pruebas',
Como Esquema = 'Pruebas',
---------------------------------------------------------------------
As Database = 'DBPrueba',
Como Base de Datos = 'DBPrueba',
---------------------------------------------------------------------
As Database_number = '01',
Como Numero de base de datos = '01'
As Table_name = 'Cta', --As Bill
Como Tabla= 'Cta', --Cuenta
---------------------------------------------------------------------
As filters = ' cCodCta ='''+ rtrim(@CodCta) +'''',
Como Filtros = ' cCodCta ='''+ rtrim(@CodCta) +'''',
Or
As filters = ' cCodCta =123456789', --Specific filters
Como Filtros = ' cCodCta =123456789', --Filtros especificos
--Stored Procedure in English
create proc uspGetDataCta
@Fields varchar(200),
@Schema varchar(40),
@Database varchar(40),
@NroDatabase varchar(4)
@Table varchar(40),
@Filters varchar(100)
as
set nocount on
DECLARE @Sentence varchar(1000)
set @ Sentence ='Select '+ @Fields +' from '+ @Schema +'.'+ @Database +''+ @NroDatabase +'..'+ @Table +' where @Filters
exec(@Sentence)
go
--Executing Stored Procedure
exec uspGetDataCta 'cCodCta,cEstadoCta,dAperturaCta','Pruebas', 'DBPrueba','01','Cta',' cCodCta =123456789'
or
exec uspGetDataCta 'cCodCta,cEstadoCta,dAperturaCta','Pruebas', 'DBPrueba','01','Cta',' cCodCta ='''+ rtrim(@CodCta) +''''

---------------------------------------------------------------------
--Procedimiento Almacenado en Castellano
create proc uspListarDatosCuenta
@Campos varchar(200),
@Esquema varchar(40),
@Basedatos varchar(40),
@NroBaseDatos varchar(4)
@Tabla varchar(40),
@Filtros varchar(100)
as
set nocount on
DECLARE @SentenciaSQL varchar(1000)
set @SentenciaSQL ='Select '+ @Campos +' from '+ @Esquema +'.'+ @BaseDatos +''+ @NroBaseDatos +'..'+ @Tabla +' where @Filtros
exec(@SentenciaSQL)
go
--Ejecutando Procedimiento Almacenado
exec uspListarDatosCuenta 'cCodCta,cEstadoCta,dAperturaCta','Pruebas', 'DBPrueba','01','Cta',' cCodCta =123456789'
or
exec uspListarDatosCuenta 'cCodCta,cEstadoCta,dAperturaCta','Pruebas', 'DBPrueba','01','Cta',' cCodCta ='''+ rtrim(@CodCta) +''''

See you.Happy Coding – Nos vemos. Feliz programacion