
Guardar y actualizar registros con el mismo boton
Publicado por Jesus Rene (4 intervenciones) el 02/03/2016 10:24:04
Estoy usando este codigo para guardar y actualizar registros a la base de datos con un solo boton.
Mi duda esta en 'comprobamos si existe el codigo no se como optener el id_proveedor
para usarlo en la sentencia update proveedores SET ..... WHERE id_proveedor = '& id_proveedor &'
en su lugar tengo puesto el codigo y me funciona a medias ya que si cambio el codigo este no se actualiza si no que crea un nuevo registro :C
De antemano les doy las gracias
Mi duda esta en 'comprobamos si existe el codigo no se como optener el id_proveedor
para usarlo en la sentencia update proveedores SET ..... WHERE id_proveedor = '& id_proveedor &'
en su lugar tengo puesto el codigo y me funciona a medias ya que si cambio el codigo este no se actualiza si no que crea un nuevo registro :C
De antemano les doy las gracias
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
Private Sub btnGuardar_Click(sender As Object, e As EventArgs) Handles btnGuardar.Click
Try
If txtCodigo.Text = "" Then
'Verificamos que haya un codigo
MsgBox("Proporcione un codigo")
txtCodigo.Focus()
ElseIf txtNombre.Text = "" Then
'Verificamos que haya un nombre
MsgBox("Proporcione un Nombre")
txtNombre.Focus()
'comensamos con todo el menjurge para guardar
Else
'comprobamos si existe el codigo
Dim mDt As DataTable
Dim mDa As New MySqlDataAdapter
Dim Cmd As New MySqlCommand
With Cmd
.CommandType = CommandType.Text
.CommandText = "Select * From proveedores WHERE id_empresa=?id_empresa AND codigo=?codigo"
.Parameters.AddWithValue("?id_empresa", id_emp)
.Parameters.AddWithValue("?codigo", Me.txtCodigo.Text)
.Connection = con
.Connection.Close()
End With
mDa.SelectCommand = Cmd
mDt = New DataTable
mDa.Fill(mDt)
If mDt.Rows.Count <= 0 Then
'si no se guarda como nuevo :D
Dim Cmdg As New MySqlCommand
With Cmdg
.CommandType = CommandType.Text
.CommandText = "insert into proveedores VALUES(?id_proveedor,?id_empresa,?codigo,?nombre,?direccion,?colonia,?codigo_postal,?ciudad,?estado,?pais,?telefono1,?telefono2,?telefono3,?rfc,?email,?limitecredito,?plazopago,?nombrec1,?puestoc1,?telefonoc1,?extc1,?nombrec2,?puestoc2,?telefonoc2,?extc2,?nombrec3,?puestoc3,?telefonoc3,?extc3,?estatus)"
.Parameters.AddWithValue("?id_proveedor", "0")
.Parameters.AddWithValue("?id_empresa", id_emp)
.Parameters.AddWithValue("?codigo", Me.txtCodigo.Text)
.Parameters.AddWithValue("?nombre", Me.txtNombre.Text)
.Parameters.AddWithValue("?direccion", Me.txtDireccion.Text)
.Parameters.AddWithValue("?colonia", Me.txtColonia.Text)
.Parameters.AddWithValue("?codigo_postal", Me.txtCodigoPostal.Text)
.Parameters.AddWithValue("?ciudad", Me.cbCiudad.SelectedValue)
.Parameters.AddWithValue("?estado", Me.cbEstado.SelectedValue)
.Parameters.AddWithValue("?pais", Me.cbPais.SelectedValue)
.Parameters.AddWithValue("?telefono1", Me.txtTelefono1.Text)
.Parameters.AddWithValue("?telefono2", Me.txtTelefono2.Text)
.Parameters.AddWithValue("?telefono3", Me.txtTelefono3.Text)
.Parameters.AddWithValue("?rfc", Me.txtRFC.Text)
.Parameters.AddWithValue("?email", Me.txtEmail.Text)
.Parameters.AddWithValue("?limitecredito", Me.txtLimiteCredito.Text)
.Parameters.AddWithValue("?plazopago", Me.txtPlazoPago.Text)
.Parameters.AddWithValue("?nombrec1", Me.txtNombrec1.Text)
.Parameters.AddWithValue("?puestoc1", Me.txtPuestoc1.Text)
.Parameters.AddWithValue("?telefonoc1", Me.txtTelefonoc1.Text)
.Parameters.AddWithValue("?extc1", Me.txtExtc1.Text)
.Parameters.AddWithValue("?nombrec2", Me.txtNombrec2.Text)
.Parameters.AddWithValue("?puestoc2", Me.txtPuestoc2.Text)
.Parameters.AddWithValue("?telefonoc2", Me.txtTelefonoc2.Text)
.Parameters.AddWithValue("?extc2", Me.txtExtc2.Text)
.Parameters.AddWithValue("?nombrec3", Me.txtNombrec3.Text)
.Parameters.AddWithValue("?puestoc3", Me.txtPuestoc3.Text)
.Parameters.AddWithValue("?telefonoc3", Me.txtTelefonoc3.Text)
.Parameters.AddWithValue("?extc3", Me.txtExtc3.Text)
.Parameters.AddWithValue("?estatus", "1")
.Connection = con
.Connection.Open()
.ExecuteNonQuery()
.Connection.Close()
.Connection.Dispose()
End With
MsgBox("Guardado con exito")
For Each c As Control In gbDatContEmpProveedor.Controls
If TypeOf c Is TextBox Then
c.Text = "" ' eliminar el texto
End If
Next
For Each c As Control In gbDatContProveedor1.Controls
If TypeOf c Is TextBox Then
c.Text = "" ' eliminar el texto
End If
Next
For Each c As Control In gbDatContProveedor2.Controls()
If TypeOf c Is TextBox Then
c.Text = "" ' eliminar el texto
End If
Next
For Each c As Control In gbDatContProveedor3.Controls()
If TypeOf c Is TextBox Then
c.Text = "" ' eliminar el texto
End If
Next
For Each c As Control In gbDatGrlsProveedor.Controls()
If TypeOf c Is TextBox Then
c.Text = "" ' eliminar el texto
End If
Next
For Each c As Control In gbLimiteCredito.Controls()
If TypeOf c Is TextBox Then
c.Text = "" ' eliminar el texto
End If
Next
For Each c As Control In gbSaldosCredito.Controls()
If TypeOf c Is TextBox Then
c.Text = "" ' eliminar el texto
End If
Next
For Each c As Control In gbUltimos.Controls()
If TypeOf c Is TextBox Then
c.Text = "" ' eliminar el texto
End If
Next
txtCodigo.Focus()
Else
'si existe se actualiza
'Si hay id se pregunta si desea actualizar la informacion
If (MsgBox("El Registro Existe Desea Actulizar?", MsgBoxStyle.YesNo, "Guardando...")) = MsgBoxResult.Yes Then
'Si Responde que si Actualizamos
Dim Cmdu As New MySqlCommand
With Cmdu
.CommandType = CommandType.Text
.CommandText = "UPDATE proveedores SET codigo = ?codigo, nombre = ?nombre, direccion = ?direccion, colonia = ?colonia, codigo_postal = ?codigo_postal, ciudad = ?ciudad, estado = ?estado, pais = ?pais, telefono1 = ?telefono1, telefono2 = ?telefono2, telefono3 = ?telefono3, rfc = ?rfc, email = ?email, limitecredito = ?limitecredito, plazopago = ?plazopago, nombrec1 = ?nombrec1, puestoc1 = ?puestoc1, telefonoc1 = ?telefonoc1, extc1 = ?extc1, nombrec2 = ?nombrec2, puestoc2 = ?puestoc2, telefonoc2 = ?telefonoc2, extc2 = ?extc2, nombrec3 = ?nombrec3, puestoc3 = ?puestoc3, telefonoc3 = ?telefonoc3, extc3 = ?extc3, estatus = ?estatus WHERE codigo='" & txtCodigo.Text & "'"
.Parameters.AddWithValue("?codigo", Me.txtCodigo.Text)
.Parameters.AddWithValue("?nombre", Me.txtNombre.Text)
.Parameters.AddWithValue("?direccion", Me.txtDireccion.Text)
.Parameters.AddWithValue("?colonia", Me.txtColonia.Text)
.Parameters.AddWithValue("?codigo_postal", Me.txtCodigoPostal.Text)
.Parameters.AddWithValue("?ciudad", Me.cbCiudad.SelectedValue)
.Parameters.AddWithValue("?estado", Me.cbEstado.SelectedValue)
.Parameters.AddWithValue("?pais", Me.cbPais.SelectedValue)
.Parameters.AddWithValue("?telefono1", Me.txtTelefono1.Text)
.Parameters.AddWithValue("?telefono2", Me.txtTelefono2.Text)
.Parameters.AddWithValue("?telefono3", Me.txtTelefono3.Text)
.Parameters.AddWithValue("?rfc", Me.txtRFC.Text)
.Parameters.AddWithValue("?email", Me.txtEmail.Text)
.Parameters.AddWithValue("?limitecredito", Me.txtLimiteCredito.Text)
.Parameters.AddWithValue("?plazopago", Me.txtPlazoPago.Text)
.Parameters.AddWithValue("?nombrec1", Me.txtNombrec1.Text)
.Parameters.AddWithValue("?puestoc1", Me.txtPuestoc1.Text)
.Parameters.AddWithValue("?telefonoc1", Me.txtTelefonoc1.Text)
.Parameters.AddWithValue("?extc1", Me.txtExtc1.Text)
.Parameters.AddWithValue("?nombrec2", Me.txtNombrec2.Text)
.Parameters.AddWithValue("?puestoc2", Me.txtPuestoc2.Text)
.Parameters.AddWithValue("?telefonoc2", Me.txtTelefonoc2.Text)
.Parameters.AddWithValue("?extc2", Me.txtExtc2.Text)
.Parameters.AddWithValue("?nombrec3", Me.txtNombrec3.Text)
.Parameters.AddWithValue("?puestoc3", Me.txtPuestoc3.Text)
.Parameters.AddWithValue("?telefonoc3", Me.txtTelefonoc3.Text)
.Parameters.AddWithValue("?extc3", Me.txtExtc3.Text)
.Parameters.AddWithValue("?estatus", "1")
.Connection = con
.Connection.Open()
.ExecuteNonQuery()
.Connection.Close()
.Connection.Dispose()
End With
MsgBox("Registro Actualizado")
Me.Refresh()
For Each c As Control In gbDatContEmpProveedor.Controls
If TypeOf c Is TextBox Then
c.Text = "" ' eliminar el texto
End If
Next
For Each c As Control In gbDatContProveedor1.Controls
If TypeOf c Is TextBox Then
c.Text = "" ' eliminar el texto
End If
Next
For Each c As Control In gbDatContProveedor2.Controls()
If TypeOf c Is TextBox Then
c.Text = "" ' eliminar el texto
End If
Next
For Each c As Control In gbDatContProveedor3.Controls()
If TypeOf c Is TextBox Then
c.Text = "" ' eliminar el texto
End If
Next
For Each c As Control In gbDatGrlsProveedor.Controls()
If TypeOf c Is TextBox Then
c.Text = "" ' eliminar el texto
End If
Next
For Each c As Control In gbLimiteCredito.Controls()
If TypeOf c Is TextBox Then
c.Text = "" ' eliminar el texto
End If
Next
For Each c As Control In gbSaldosCredito.Controls()
If TypeOf c Is TextBox Then
c.Text = "" ' eliminar el texto
End If
Next
For Each c As Control In gbUltimos.Controls()
If TypeOf c Is TextBox Then
c.Text = "" ' eliminar el texto
End If
Next
txtCodigo.Focus()
'Si no Pues no XD
End If
End If
End If
Catch ex As Exception
MsgBox("Excepción en tiempo de ejecución: " & ex.Message) 'Ocurrió un error durante se procesaba.
con.Close()
End Try
End Sub
Valora esta pregunta


0