1. Proyecto Ado .NET<br />Mantenimiento de Clientes<br />El propósito de dicho manual es, demostrar la gran versatilidad que tiene el Ado .Net de Visual Basic, en relación a conexiones y ejecución de comandos, incluyendo la carga de DataSets, las operaciones básicas como: Inserciones, Eliminaciones de tipo lógico y Actualizaciones, demostrando la autogeneración de códigos para los clientes, pero antes debemos contar con un modelo relacional demostrativo. para tener un mayor alcance de lo que se esta realizando:<br />Se tiene el siguiente Modelo Relacional:<br />18415-2540<br />Dicho Script deberá ser ejecutado en el motor de base de datos de SQL Server.<br />El proyecto esta constituido por un formulario y un módulo, para elementos generales:<br />228601905<br />Este formulario esta constituido por cajas de texto (8), combos (4), picturebox (1) y un objeto openfiledialog (1) para control de imágenes.<br />El proyecto esta programado en el siguiente orden:<br />AGREGAR UN MODULO A NUESTRO PROYECTO, ESTE CONTENDRA LA DECLARACION PUBLICA DE UN DATASET (DsSysAdoNet) Y UN DATAADAPTER (DaGenerador) incluyendo la CONEXIÓN, PARA LA TABLA GENERADOR DE CODIGOS, PROGRAMELO DE LA SIGUENTE MANERA:Module Module1 Public DsSysAdoNet As New DataSet Public CN As New SqlClient.SqlConnection(quot;
SERVER=LOCALHOST;UID=SA;” _ ”PASSWORD=123;DATABASE=SysAdoNetquot;
) Public DaGenerador As New SqlClient.SqlDataAdapter(quot;
select * from GENERADORquot;
, CN)Public Function GENERAR_CODIGO(ByVal TABLA As String) As String Dim Nfila, CEROS As Integer Dim ULT As Integer Dim CG As String = quot;
quot;
DaGenerador.Fill(DsSysAdoNet, quot;
Generadorquot;
) DsSysAdoNet.Tables(quot;
Generadorquot;
).DefaultView.Sort = quot;
Parametroquot;
Nfila = DsSysAdoNet.Tables(quot;
Generadorquot;
).DefaultView.Find(TABLA) If Nfila >= 0 Then ULT = Val(DsSysAdoNet.Tables(quot;
Generadorquot;
).Rows(Nfila)(1)) + 1 CEROS = 4 - Len(Trim(Str(ULT))) Select Case CEROS Case 3 : CG = Left(TABLA, 1) + quot;
000quot;
+ Trim(Str(ULT)) Case 2 : CG = Left(TABLA, 1) + quot;
00quot;
+ Trim(Str(ULT)) Case 1 : CG = Left(TABLA, 1) + quot;
0quot;
+ Trim(Str(ULT)) Case 0 : CG = Left(TABLA, 1) + Trim(Str(ULT)) End Select End If CN.Open() Dim SQL As String SQL = quot;
UPDATE GENERADOR SET ULTIMO='quot;
+ Str(ULT) + _ quot;
' WHERE PARAMETRO='quot;
+ TABLA + quot;
'quot;
Dim CMD As New SqlClient.SqlCommand(SQL, CN) CMD.CommandType = CommandType.Text CMD.ExecuteNonQuery() CN.Close() DsSysAdoNet.Tables(quot;
Generadorquot;
).Rows.Clear() DaGenerador.Fill(DsSysAdoNet, quot;
Generadorquot;
) GENERAR_CODIGO = CG End FunctionEnd Module<br />Abra el formulario y agregar los siguientes IMPORTACIONES.<br />Imports SYSTEM.DATAImports SYSTEM.DATA.SQLCLIENTImports SYSTEM.IOImports SYSTEM.DRAWING.IMAGINGEn el Public Class del Formulario, declare las siguientes variables, para uso exclusivo de nuestro formulario.Dim NOMBREARCHIVO As String = quot;
quot;
Dim CONDICION As String = quot;
Uquot;
Dim FILA As IntegerDim DaCliente As New SqlClient.SqlDataAdapter(quot;
select * from clientequot;
, CN)Dim DaIdentidad As New SqlClient.SqlDataAdapter(quot;
select * from Identidadquot;
, CN)Dim DaDistrito As New SqlClient.SqlDataAdapter(quot;
Select * From distritoquot;
, CN)En el formulario crear los siguientes procedimientos:Public Sub LimpiarObjetos() TextBox1.Text = quot;
quot;
: TextBox2.Text = quot;
quot;
: TextBox3.Text = quot;
quot;
TextBox4.Text = quot;
quot;
: TextBox5.Text = quot;
quot;
: TextBox6.Text = quot;
quot;
TextBox7.Text = quot;
quot;
: TextBox8.Text = quot;
quot;
ComboBox1.Text = quot;
quot;
: ComboBox2.Text = quot;
quot;
: ComboBox3.Text = quot;
quot;
ComboBox4.Text = quot;
quot;
End SubPublic Sub MostrarDatos()Dim EST As IntegerDim GEN As StringWith DsSysAdoNet.Tables(quot;
Clientequot;
) Me.TextBox1.Text = IIf(IsDBNull(.Rows(FILA)(0)), quot;
quot;
, .Rows(FILA)(0)) Me.TextBox2.Text = IIf(IsDBNull(.Rows(FILA)(1)), quot;
quot;
, .Rows(FILA)(1)) GEN = IIf(IsDBNull(.Rows(FILA)(2)), quot;
quot;
, .Rows(FILA)(2)) Me.ComboBox1.Text = IIf(GEN = quot;
Mquot;
, quot;
Masculinoquot;
, quot;
Femeninoquot;
) Me.ComboBox2.SelectedValue = quot;
quot;
Me.ComboBox2.SelectedValue = IIf(IsDBNull(.Rows(FILA)(3)), quot;
quot;
, .Rows(FILA)(3)) Me.TextBox3.Text = IIf(IsDBNull(.Rows(FILA)(4)), quot;
quot;
, .Rows(FILA)(4)) Me.ComboBox3.SelectedValue = quot;
quot;
ComboBox3.SelectedValue = IIf(IsDBNull(.Rows(FILA)(5)), quot;
quot;
, .Rows(FILA)(5)) Me.TextBox4.Text = IIf(IsDBNull(.Rows(FILA)(6)), quot;
quot;
, .Rows(FILA)(6)) Me.TextBox5.Text = IIf(IsDBNull(.Rows(FILA)(7)), quot;
quot;
, .Rows(FILA)(7)) Me.TextBox6.Text = IIf(IsDBNull(.Rows(FILA)(8)), quot;
quot;
, .Rows(FILA)(8)) Me.TextBox7.Text = IIf(IsDBNull(.Rows(FILA)(9)), quot;
quot;
, .Rows(FILA)(9)) Me.TextBox8.Text = IIf(IsDBNull(.Rows(FILA)(10)), quot;
quot;
, .Rows(FILA)(10)) EST = IIf(IsDBNull(.Rows(FILA)(11)), quot;
quot;
, .Rows(FILA)(11)) Me.ComboBox4.Text = IIf(EST = 1, quot;
Habilitadoquot;
, quot;
Inhabilitadoquot;
) If IsDBNull(.Rows(FILA).Item(12)) Then PictureBox1.Image = Nothing Else Dim VALOR As Byte() = CType(.Rows(FILA).Item(12), Byte()) Dim MEMORIA As New MemoryStream(VALOR) Dim MAPABITS As New Bitmap(MEMORIA) PictureBox1.Image = MAPABITS VALOR = Nothing End IfEnd WithEnd SubPROGRAMAR EN EL EVENTO LOAD DEL FORMULARIO LO SIGUIENTE: DaCliente.Fill(DsSysAdoNet, quot;
Clientequot;
) DaIdentidad.Fill(DsSysAdoNet, quot;
Identidadquot;
) DaDistrito.Fill(DsSysAdoNet, quot;
Distritoquot;
) 'Carga de Combo Generos ComboBox1.Items.Add(quot;
Masculinoquot;
) ComboBox1.Items.Add(quot;
Femeninoquot;
) 'Carga de combo Identidad ComboBox2.DataSource = DsSysAdoNet.Tables(quot;
Identidadquot;
) ComboBox2.DisplayMember = quot;
Descripcion_idquot;
ComboBox2.ValueMember = quot;
Codigo_Idquot;
'Carga del combo Distrito ComboBox3.DataSource = DsSysAdoNet.Tables(quot;
Distritoquot;
) ComboBox3.DisplayMember = quot;
DesDistritoquot;
ComboBox3.ValueMember = quot;
IdDistritoquot;
'Carga del combo Estado ComboBox4.Items.Clear() ComboBox4.Items.Add(quot;
Habilitadoquot;
) ComboBox4.Items.Add(quot;
Inhabilitadoquot;
) Call LimpiarObjetos() Call MostrarDatos()PROGRAMAR EL BOTON DE DESPLAZAMIENTO IZQUIERDA INICIO (<<) Button1_ClickDim Contador As Integer = DsSysAdoNet.Tables(quot;
Clientequot;
).Rows.Count + 1If Contador < 0 Then Return FILA = 0 Call MostrarDatos()PROGRAMAR EL BOTON DE DESPLAZAMIENTO A LA IZQUIERDA (<) Button2_ClickDim Contador As Integer = DsSysAdoNet.Tables(quot;
Clientequot;
).Rows.CountIf Contador < 0 Then Return FILA -= 1 If FILA < 0 Then FILA = 0 Call MostrarDatos()PROGRAMAR EL BOTON DE DESPLAZAMIENTO A LA DERECHA (>) Button3_ClickDim Contador As Integer = DsSysAdoNet.Tables(quot;
Clientequot;
).Rows.Count If Contador < 0 Then Return FILA += 1 If FILA >= Contador Then FILA = Contador - 1 Call MostrarDatos()PROGRAMAR EL BOTON DE DESPLAZAMIENTO A LA DERECHA FINAL (>>) Button4_ClickDim Contador As Integer = DsSysAdoNet.Tables(quot;
Clientequot;
).Rows.Count - 1 If Contador < 0 Then Return FILA = Contador Call MostrarDatos()PROGRAMANDO EL BOTON Nuevo / Cancelar Button5_Click If Button5.Text = quot;
Nuevoquot;
Then Button5.Text = quot;
Cancelarquot;
CONDICION = quot;
Iquot;
Call LimpiarObjetos() TextBox2.Focus() Else Button5.Text = quot;
Nuevoquot;
CONDICION = quot;
Uquot;
Call MostrarDatos() End IfPROGRAMANDO EL BOTON Consultar Button6_Click Dim NR As Integer DsSysAdoNet.Tables(quot;
Clientequot;
).DefaultView.Sort = quot;
COD_CLIquot;
NR = DsSysAdoNet.Tables(quot;
Clientequot;
).DefaultView.Find(TextBox1.Text) If NR >= 0 Then FILA = NR Call MostrarDatos() Else MsgBox(quot;
El Cliente no Existe...quot;
) End IfPROGRAMANDO EL BOTON Eliminar Button7_ClickIf MsgBox(quot;
Eliminarquot;
, MsgBoxStyle.OkCancel, quot;
Esta Seguro?quot;
) = MsgBoxResult.Ok Then CN.Open() Dim SQL As String SQL = quot;
UPDATE CLIENTE SET ESTADO=0 WHERE COD_CLI='quot;
+ TextBox1.Text + quot;
'quot;
Dim CMD As New SqlClient.SqlCommand(SQL, CN) CMD.CommandType = CommandType.Text CMD.ExecuteNonQuery() CN.Close() DsSysAdoNet.Tables(quot;
CLIENTEquot;
).Rows.Clear() DaCliente.Fill(DsSysAdoNet, quot;
Clientequot;
) Call MostrarDatos()End IfPROGRAMANDO EL BOTON Actualizar Button8_Click'ALMACENANDO DE DATOS Dim SEX As String = quot;
quot;
Dim EST As IntegerDim SQL As String = quot;
quot;
SEX = IIf(ComboBox1.Text = quot;
Masculinoquot;
, quot;
Mquot;
, quot;
Fquot;
)EST = IIf(ComboBox4.Text = quot;
Habilitadoquot;
, 1, 0)If CONDICION = quot;
Iquot;
Then TextBox1.Text = GENERAR_CODIGO(quot;
CLIENTEquot;
) SQL = quot;
INSERT INTO CLIENTE VALUES('quot;
+ TextBox1.Text + quot;
','quot;
+ _ TextBox2.Text + quot;
','quot;
+ SEX + quot;
','quot;
+ ComboBox2.SelectedValue + quot;
','quot;
+ _ TextBox3.Text + quot;
','quot;
+ ComboBox3.SelectedValue + quot;
','quot;
+ TextBox4.Text + quot;
','quot;
+ _ TextBox5.Text + quot;
','quot;
+ TextBox6.Text + quot;
','quot;
+ TextBox7.Text + quot;
','quot;
+ _ TextBox8.Text + quot;
','quot;
+ Str(EST) + quot;
',null)quot;
End IfIf CONDICION = quot;
Uquot;
Then SQL = quot;
UPDATE CLIENTE SET NOMCLI='quot;
+ TextBox2.Text + quot;
',SEXO='quot;
+ SEX + quot;
',quot;
+ _ quot;
CODIGO_ID='quot;
+ ComboBox2.SelectedValue + quot;
',NUMERO_ID='quot;
+ TextBox3.Text + quot;
',quot;
+ _ quot;
IDDISTRITO='quot;
+ ComboBox3.SelectedValue + quot;
',TELEFONO='quot;
+ TextBox4.Text + quot;
',quot;
+ _ quot;
DIRECCION='quot;
+ TextBox5.Text + quot;
',RUC_CLIENTE='quot;
+ TextBox6.Text + quot;
',quot;
+ _ quot;
FECHA_NAC='quot;
+ TextBox7.Text + quot;
',FECHA_REG='quot;
+ TextBox8.Text + quot;
',quot;
+ _ quot;
ESTADO='quot;
+ Str(EST) + quot;
' WHERE COD_CLI='quot;
+ TextBox1.Text + quot;
'quot;
End If CN.Open() Dim CMD As New SqlClient.SqlCommand(SQL, CN) CMD.CommandType = CommandType.Text CMD.ExecuteNonQuery() CN.Close() DsSysAdoNet.Tables(quot;
CLIENTEquot;
).Rows.Clear() DaCliente.Fill(DsSysAdoNet, quot;
Clientequot;
) Call MostrarDatos()PROGRAMANDO EL BOTON Filtros Button9_Click 'Este boton nos conduce a otro formulario (form2) Form2.Show()PROGRAMANDO EL BOTON Examinar Button10_ClickWith OpenFileDialog1 .Filter = quot;
(ARCHIVOS JPG) *.JPG |*.JPGquot;
.InitialDirectory = quot;
C:ocuments and “ + _ “SettingsordSerafanscritoriodoNetysCliente + _ “WindowsApplication1otosquot;
.Title = quot;
FOTOS DEL ALUMNOquot;
If (.ShowDialog = Windows.Forms.DialogResult.OK) Then NOMBREARCHIVO = .FileName PictureBox1.Image = Image.FromFile(NOMBREARCHIVO) End IfEnd WithPROGRAMANDO EL BOTON Grabar … Guardando foto a la BD Button11_ClickDim FSFOTO As New FileStream(NOMBREARCHIVO, FileMode.Open, FileAccess.Read) Dim INFOFOTO As FileInfo = New FileInfo(NOMBREARCHIVO) Dim TEMPORAL As Long = INFOFOTO.Length Dim LONGITUD As Long = Convert.ToInt32(TEMPORAL) Dim IMAGEN(LONGITUD) As Byte FSFOTO.Read(IMAGEN, 0, LONGITUD) FSFOTO.Close() CN.Open() Dim DAFOTO As New SqlDataAdapter DAFOTO.SelectCommand = New SqlCommand With DAFOTO.SelectCommand .Connection = CN .CommandType = CommandType.StoredProcedure .CommandText = quot;
Grabar_Fotoquot;
.Parameters.Add(New SqlParameter(quot;
@Ccliquot;
, SqlDbType.Char, 7, _ ParameterDirection.Input)).Value = TextBox1.Text .Parameters.Add(New SqlParameter(quot;
@Fotquot;
, SqlDbType.Image, LONGITUD, _ ParameterDirection.Input)).Value = IMAGEN .ExecuteNonQuery End With CN.Close() DsSysAdoNet.Tables(quot;
CLIENTEquot;
).Rows.Clear() DaCliente.Fill(DsSysAdoNet, quot;
Clientequot;
) Call MostrarDatos()<br />AL EJECUTAR EL FORMULARIO, TENDRA EL SIGUIENTE ASPECTO:<br />18415-6985<br />Nota: Cuando se proceda a insertar a un nuevo cliente, procurar no grabar la foto, después de insertar el registro, proceda a buscar la foto con el botón EXAMINAR, cuando haya sido seleccionada la foto proceda a GRABAR.<br />Diseñe el siguiente formulario (Filtros) cuyo fin será el de filtrar datos.<br />3810148590<br />Este formulario permitirá filtrar a los clientes por sus apellidos y nombres completos o carácter por carácter.<br />Imports System.Data.SqlClientPublic Class Form4Dim DsEntorno As New DataSetPrivate Sub TextBox1_TextChanged Dim DaCli As SqlDataAdapter DaCli = Clases.DevolverClientesFiltrados(quot;
*quot;
) DaCli.Fill(DsEntorno, quot;
Filtroquot;
) If DsEntorno.Tables(quot;
Filtroquot;
).Rows.Count >= 0 Then DsEntorno.Tables(quot;
Filtroquot;
).Rows.Clear() DaCli = Clases.DevolverClientesFiltrados(TextBox1.Text) DaCli.Fill(DsEntorno, quot;
Filtroquot;
) DataGrid1.DataSource = DsEntorno.Tables(quot;
Filtroquot;
) End If<br />