Tuesday, March 15, 2011

Convert.ToInt32 vs CInt

Ambas sentencias devuelven el mismo valor:




Dim d1 As Double = 5.5
Dim i1 As Integer = Convert.ToInt32(d1)

Dim d2 As Double = 5.5
Dim i2 As Integer = CInt(d2)




Si estás usando Visual Basic .NET tal vez te has preguntado cuál es la diferencia de usar Convert.ToInt32 o CInt, o si es indiferente o cuándo usar lo uno y cuándo lo otro.

Microsoft recomienda usar CInt a utilizar el método de Convert.ToInt32 de .NET Framework ¿Por qué? Porque esta función se compila en línea, es decir, el código de conversión forma parte del código que evalúa la expresión. A veces no se produce una llamada a un procedimiento para realizar la conversión, lo que mejora el rendimiento.

Good Coding! =)

Monday, March 14, 2011

Como insertar registros De Una tabla a otra tabla

SQL SERVER

El caso más sencillo es cuando ambas tablas se encuentran dentro de la misma base de datos que pertenece a un mismo servidor.

INSERT INTO tabla_destino SELECT * FROM tabla_origen

La cantidad y tipo de datos de columnas deben coincidir tanto para la tabla origen como en la de destino (asímismo para los otros dos casos)

Ej:

INSERT INTO dbo.cfPrfl (cfEmprNcod,cfPrflNmbr) SELECT cfEmprNcod, dcPrsnNmbr FROM dcPrsn

Este es el caso medio, cuando se quiere insertar datos de una tabla a otra pero estas pertecenen a diferentes base de datos en un mismo servidor. En este caso, el usuario debe tener acceso a las dos base de datos.

INSERT INTO base_de_datos.dbo.tabla_destino SELECT * FROM base_de_datos.dbo.tabla_origen

Ej:


INSERT INTO UponERP.dbo.cfPais SELECT cfPaisNmbr FROM UponErpTestLizzy.dbo.cfPais

Y por último, este es el caso final. Cuando se desea insertar datos de una tabla a otra pero que ambas tablas están en diferentes base de datos y las cuales a su vez pertenecen a distintos servidor.

Para este caso, es necesario que el usuario tenga acceso a los dos servidores y a las dos base de datos

INSERT INTO servidor.base_de_datos.esquema.tabla_destino SELECT * FROM servidor.base_de_datos.esquema.tabla_origen

Ej:


INSERT INTO [DESARROLLO02\SQL2005].UponErpTestLizzy.dbo.cfBsAu SELECT * FROM [SRV-DB\SQL2005].UponErpTest.dbo.cfBsAu

Good Coding =)

Wednesday, March 9, 2011

String.Empty vs EnTre ComiLLas VaCiAs

Cuando necesito crear/reiniciar o limpiar variables de string o cajas de texto, solía hacerlo de ambas formas:

Me.txtNombre.text = String.Empty()
Me.txtNombre.text = ""

Las usaba de la misma manera pero luego me pregunté cuál es la diferencia y si alguna forma es mejor que la otra.

Cuando usamos las comillas, se crea un nuevo objeto en la memoria. Mientras que cuando se utiliza String.Empty(), no se crea nada. Por tanto, para la buena administración de memoria, es preferible usar String.Empty()

A utilizar String.Empty() !!!

Good Coding...

Thursday, March 3, 2011

Datatable y DataKeyNames

DataKeyNames permite agregarle un array de campos llaves que se usarán para seleccionar un registro dentro del datatable. Al menos yo lo utilizo para hacer un select con esa llave o conjunto de llaves. Solía usar siempre solo un item para el array. Pero cuando me tocó usar más de uno, no supe hacerlo. Pero ya lo hice, jajaja :p Es sencillo, es com sigue:

Por ejemplo, cuando sólo era uno, por código yo lo llenaba así:
Me.grvResultado.DataKeyNames = New String() {Me.pNombrePrimaryKey}

Pero cuando me tocó llenar con más de uno, fue asi:

Me.grvResultado.DataKeyNames = New String() {Me.strNombrePrimaryKey, Me.strKeySecundaria}

(Sin embargo, si lo querés hacer por diseño, podes seleecionar tu gridview, ir a sus propiedades y en donde dice: "DataKeyNames", agregar los campos llaves separados por coma.)

En el evento de tu gridview RowDataBound, hay que llenar el CommandArgument

If e.Row.RowType = DataControlRowType.DataRow Then
Dim lnkSeleccionar As LinkButton = CType(e.Row.Cells(0).Controls(0), LinkButton)
lnkSeleccionar.CommandArgument = Me.grvResultado.DataKeys(e.Row.RowIndex).Values(0) & "," & Me.grvResultado.DataKeys(e.Row.RowIndex).Values(1)
End If

El Values(0) es el primer campo llave, el Values(1) es segundo, y así sucesivamente. Fijate que están separados por coma.

Luego en el evento de tu gridview RowCommand, desglosas tu array de llaves.

Dim valores() As String = e.CommandArgument.ToString().Split(",")
Dim valor1 As String = valores(0)
Dim valor2 As String = valores(1)

Y mi Select sería así:

dt.Select(Me.strNombrePrimaryKey & "=" & valor1 & " AND " & Me.strKeySecundaria & "=" & valor2)

Happy Codding =)

Tuesday, February 15, 2011

Cómo cuidar La pantalla LCD De Tu portatil

La pantalla de una notebook / laptop es realmente frágil y delicada. Hay que cuidarla mucho =)

Cómo? A continuación algunos tips:

**Empieza apagando tu máquina, no la limpies en encendido ya que así podrás distinguir fácilmente la suciedad.

**Elije un paño muy suavecito, nada de áspero, papeles, o cualquier otra cosa.

**Limpiala con delicadeza, nunca ejerzas presión.

Qué líquido se recomienda para limpiar la pantalla?

---Agua destilada.

---Vinagre o Alcohol isopropílico (ideal porque no deja rastro de humedad al evaporarse).

NUNCA USES agua común. Pueden dejar manchas blancas en la pantalla a causa de las sales disueltas.
Disuelve el vinagre o el alcohol isopropílico en el agua destilada (una medida de vinagre o alcohol igual que la de agua).
Puedes poner la mezcla en un rociador, para mojar la tela con la que vas a limpiar. NUNCA rocíes directamente la pantalla.
La forma correcta de limpiar es con la tela suave un poco humedecida. Pásala siempre en la misma dirección, de ARRIBA hacia ABAJO, con suavidad, sin refregar ni presionar la pantalla.

Otros consejos para tomar en cuenta:

**Asegúrate de que la pantalla de tu laptop esté absolutamente seca antes de cerrar la tapa o encenderla de nuevo.

**Nunca toques la pantalla con los dedos, puedes hacer que se quemen los píxeles.

**Nunca uses soluciones que contengan acetona, alcohol etílico, tolueno, ácido etílico, amoníaco o cloruros.

**Puedes usar un filtro de privacidad para laptops, que además de protegerla de rayaduras y suciedad evitará que se vea en lo que estás trabajando desde los costados, sin distorsionar la imagen para tí que la ves de frente.

Finalmente, UN VIDEO EDUCATIVO