miércoles, 31 de enero de 2018

Ejecutar procedimiento almacenado con using

Dim con As New SqlConnection(conex)

con.Open()
Using cmd As New SqlCommand("SP_nombre_sp", con)
        cmd.CommandType = CommandType.StoredProcedure
        cmd.Parameters.Add("@rut", SqlDbType.VarChar).Value = rut.
        cmd.Parameters.Add("@usuario", SqlDbType.VarChar).Value = usuario.
        cmd.Parameters.Add("@clave", SqlDbType.VarChar).Value = clave
        resp = cmd.ExecuteScalar()
End Using
con.Close()

Otra opción

 con.Open()
 Dim cmd As System.Data.SqlClient.SqlCommand = Nothing
 cmd = New System.Data.SqlClient.SqlCommand("SP_nombre_sp", con)
 cmd.Parameters.Add("@rut", SqlDbType.VarChar).Value = rut.Trim
 cmd.Parameters.Add("@usuario", SqlDbType.VarChar).Value = usuario
 cmd.Parameters.Add("@clave", SqlDbType.VarChar).Value = clave
 cmd.CommandType = CommandType.StoredProcedure
 resp = cmd.ExecuteScalar()
 con.Close()

lunes, 29 de enero de 2018

Deshabilitar botón salir(exit) WindowsForm

Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams
        Get
            Dim cp As CreateParams = MyBase.CreateParams
            Const CS_NOCLOSE As Integer = &H200
            cp.ClassStyle = cp.ClassStyle Or CS_NOCLOSE
            Return cp
        End Get
End Property

Mostrar elementos de un nuevo array

For Each c As String In New String() {"1", "2", "3", "4"}
    MessageBox.Show(c)
Next

viernes, 26 de enero de 2018

Captura argumentos línea de comandos

Dim i As Integer = My.Application.CommandLineArgs.Count
My.Application.CommandLineArgs(0)

Leer y separar datos

El separador es un caracter

Dim readconex() As String = File.ReadAllLines(conex, vencode)(0).Split(";")

Cuando el separador es una palabra

Dim query As String = "SELECT * FROM tabla WHERE campo=1"

Dim data() As String = query.Split(New String(){"WHERE"},StringSplitOptions.None)

Resultado: " campo=1"

Cambiar el nombre a solución-proyecto en visual net

1) Abrir la solución, doble clic en el archivo *.sln
2) Cambiar el nombre al proyecto (Project) y a la solución(Solution)
3) Clic botón derecho sobre el proyecto, seleccionar la opción Rename y cambiar el nombre
4) Clic botón derecho sobre la solución, seleccionar la opción Rename y cambiar el nombre
5) Cerrar la solución (Programa)
6) Cambiar el nombre de la carpeta que contiene los archivos de la solución con el mismo nombre que tiene el archivo *.sln
7) Abrir la solución, doble clic en el archivo *.sln
8) Aparece el siguiente mensaje: One or more projects in the solution were not loaded correctly. Please see the Output Window for details.
9) Clic en el botón OK que aparece junto al mensaje
10) Ir a File, Open Project, dentro de la carpeta de la solución buscar el archivo .vbproj
11) Clic botón derecho en el proyecto y seleccioar la opción Properties
12) Cambiar el nombre que aparece en "Assembly name:" por el nombre del proyecto y cambiar el nombre que aparece en "Root namespace:" por el nombre del proyecto
13) Hacer clic en el botón "Save All" 
14) Buscar el archivo *.sln de la solución y reemplazar el archivo; clic en el botón Save

jueves, 25 de enero de 2018

Constraint relación reflexiva en una tabla

Verificar que la llave foránea(fk) no sea el id (pk) del registro en una relación reflexiva de una tabla

ALTER TABLE empresas
ADD CONSTRAINT UQ_id_fk1 CHECK (id_fk<>id)

Agrupar variables Dim

Dim i, j, k As Integer
i=0 : j = 0 : k = 0

Dim a As Integer, b As Integer, c As Integer
a = 0 : b = 0 : c = 0

Dim i As Integer : Dim j As Integer


Fuente: https://docs.microsoft.com/en-us/dotnet/visual-basic/misc/bc30671

miércoles, 24 de enero de 2018

Bloquear subproceso

Private sc As New Object
SyncLock sc
End SyncLock

Private captura_lock As New Object
While True
    SyncLock captura_lock
      MsgBox("hola!")
    End SyncLock
End While

Borrar un archivo de texto txt, limpiar archivo

File.WriteAllText("C:\archivo.txt",String.Empty)

martes, 23 de enero de 2018

For each reverse

Dim datatxt() As String = File.ReadAllLines("archivo.txt")

For Each s As String In datatxt.Reverse
Next

lunes, 22 de enero de 2018

Verificar si el directorio existe

If Directory.Exists(ruta) then
End If


' Si no existe
If Not Directory.Exists(ruta) then
End If

jueves, 18 de enero de 2018

Concatenar una lista y transformarla en un String

Dim lista As New List(Of String)
Dim str As String = String.Join("", lista.ToArray)

miércoles, 17 de enero de 2018

Abrir programas y características windows 7 línea de comando

appwiz.cpl

Editar campo como NULL en SQL

CTRL + 0

Crear constraint para un campo en SQL

USE [BD]
ALTER TABLE tabla
ADD CONSTRAINT UQ_rut UNIQUE (rut)

Verificar constraints en la base de datos
SELECT * FROM sys.key_constraints WHERE type='PK' OR type='UQ'

Eliminar constraint
ALTER TABLE tabla
DROP CONSTRAINT "nombre_constraint" --comillas dobles

Verificar campo no vacío
ALTER TABLE tabla
ADD CONSTRAINT UQ_nombre CHECK (([nombre]<>N''))

jueves, 11 de enero de 2018

Transformar un arreglo a List

Dim ruts() As String
Dim listarut As New List(Of String)

listarut = ruts.ToList()
Dim listarut As New List(Of String)(ruts)

Inicializar String

(Dim str1 As String = "") es lo mismo que (Dim str1 As String=String.Empty)
(Dim str2 As String=Nothing) es lo mismo que (Dim str2 As String)

Fuente: https://stackoverflow.com/questions/25401202/which-is-the-best-way-to-initialize-a-string-with-null-in-vb-net

Transformar de string a byte y de byte a string

Dim var As String = "ab"
Dim a As Byte() = System.Text.Encoding.UTF8.GetBytes(var)
Dim b As String = System.Text.Encoding.UTF8.GetString(a)

martes, 9 de enero de 2018

Bloquear un caracter TextBox

Private Sub tbtexto_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tbtexto.KeyPress
        If e.KeyChar = ";" Then
            e.Handled = True
        End If
    End Sub

viernes, 5 de enero de 2018

Esconder WindowsForm

Propiedades
Opacity: 0%
ShowIcon: False
ShowInTaskbar: False
Text: ""

fuente: https://www.youtube.com/watch?v=qWfebmTDmCE

jueves, 4 de enero de 2018

Ejecutar programa al iniciar windows

-Tecla Windows + R (Ejecutar)
-shell:startup


carpeta pública del menú de inicio
shell:common startup

miércoles, 3 de enero de 2018