Actualizar tabla
Publicado por Albertx (29 intervenciones) el 03/07/2008 16:40:07
Hola a todos es la primera vez que escribo en este foro, estoy seguro de encontrar una respuesta satisfactoria. Mi problema es que tengo un formulario que visualiza todos los datos de vendedores, sin embargo, cuando modifico algun dato de vendedor que le doy al boton guardar me dice que no puede duplicar el Primary Key, pero yo solo quiero actualizar el registro no crear uno nuevo.
Si alguien puede ayudarme se lo agradecere de todo corazon. El codigo que estoy utilizando es el siguiente:
-----------------------------------------------------------------------------------------------------------------------------
Private Sub tsbGrabar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tsbGrabar.Click
Try
Dim cmdSelVend As New Data.SqlClient.SqlCommand
Dim drVend As Data.SqlClient.SqlDataReader
cmdSelVend.CommandText = "SELECT Vend_C_Codigo FROM Tbl_Vendedores WHERE Vend_C_Codigo = '" & Me.txtCodigoVend.Text & "'"
cmdSelVend.CommandType = CommandType.Text
cmdSelVend.Connection = dbConexion.dbConexion
dbConexion.dbConexion.Open()
drVend = cmdSelVend.ExecuteReader
If drVend.HasRows = True Then
daVendedores = New Data.SqlClient.SqlDataAdapter("SELECT * FROM Tbl_Vendedores", dbConexion.dbConexion)
dsControl = New Data.DataSet
daVendedores.Fill(dsControl, "Tbl_Vendedores")
daVendedores.Update(dsControl, "Tbl_Vendedores")
dsControl.AcceptChanges()
End If
dbConexion.dbConexion.Close()
Catch ex As Exception
MessageBox.Show(ex.Message, "Error")
dbConexion.dbConexion.Close()
End Try
Try
Dim cmdInsVend As New Data.SqlClient.SqlCommand
cmdInsVend.Parameters.Add(New SqlClient.SqlParameter("@Vend_C_Codigo", SqlDbType.NVarChar, 15)).Value = txtCodigoVend.Text
cmdInsVend.Parameters.Add(New SqlClient.SqlParameter("@Vend_C_Nombre", SqlDbType.NVarChar, 30)).Value = txtNombreVend.Text
cmdInsVend.Parameters.Add(New SqlClient.SqlParameter("@Vend_N_Comision", SqlDbType.SmallInt)).Value = txtComisionVend.Text
cmdInsVend.Parameters.Add(New SqlClient.SqlParameter("@Vend_N_Cuota", SqlDbType.SmallInt)).Value = txtCuotaVend.Text
cmdInsVend.Parameters.Add(New SqlClient.SqlParameter("@Vend_B_Inactivo", SqlDbType.Bit)).Value = chkInactivoVend.Checked
cmdInsVend.Parameters.Add(New SqlClient.SqlParameter("@Vend_C_Direccion1", SqlDbType.NVarChar, 40)).Value = txtDireccion1Vend.Text
cmdInsVend.Parameters.Add(New SqlClient.SqlParameter("@Vend_C_Direccion2", SqlDbType.NVarChar, 40)).Value = txtDireccion2Vend.Text
cmdInsVend.Parameters.Add(New SqlClient.SqlParameter("@Vend_C_Cedula", SqlDbType.NVarChar, 13)).Value = txtCedulaVend.Text
cmdInsVend.Parameters.Add(New SqlClient.SqlParameter("@Vend_C_Telefono1", SqlDbType.NVarChar, 13)).Value = txtTelefono1Vend.Text
cmdInsVend.Parameters.Add(New SqlClient.SqlParameter("@Vend_C_Telefono2", SqlDbType.NVarChar, 13)).Value = txtTelefono2Vend.Text
cmdInsVend.Parameters.Add(New SqlClient.SqlParameter("@Vend_C_Email", SqlDbType.NVarChar, 50)).Value = txtEmailVend.Text
cmdInsVend.Connection = dbConexion.dbConexion
cmdInsVend.CommandType = CommandType.StoredProcedure
cmdInsVend.CommandText = "SP_INS_VENDEDORES"
dbConexion.dbConexion.Open()
cmdInsVend.ExecuteNonQuery()
dbConexion.dbConexion.Close()
Catch ex As Exception
MessageBox.Show(ex.Message, "Error")
dbConexion.dbConexion.Close()
End Try
Call LIMPIAR()
End Sub
-----------------------------------------------------------------------------------------------------------------------------
Si alguien puede ayudarme se lo agradecere de todo corazon. El codigo que estoy utilizando es el siguiente:
-----------------------------------------------------------------------------------------------------------------------------
Private Sub tsbGrabar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tsbGrabar.Click
Try
Dim cmdSelVend As New Data.SqlClient.SqlCommand
Dim drVend As Data.SqlClient.SqlDataReader
cmdSelVend.CommandText = "SELECT Vend_C_Codigo FROM Tbl_Vendedores WHERE Vend_C_Codigo = '" & Me.txtCodigoVend.Text & "'"
cmdSelVend.CommandType = CommandType.Text
cmdSelVend.Connection = dbConexion.dbConexion
dbConexion.dbConexion.Open()
drVend = cmdSelVend.ExecuteReader
If drVend.HasRows = True Then
daVendedores = New Data.SqlClient.SqlDataAdapter("SELECT * FROM Tbl_Vendedores", dbConexion.dbConexion)
dsControl = New Data.DataSet
daVendedores.Fill(dsControl, "Tbl_Vendedores")
daVendedores.Update(dsControl, "Tbl_Vendedores")
dsControl.AcceptChanges()
End If
dbConexion.dbConexion.Close()
Catch ex As Exception
MessageBox.Show(ex.Message, "Error")
dbConexion.dbConexion.Close()
End Try
Try
Dim cmdInsVend As New Data.SqlClient.SqlCommand
cmdInsVend.Parameters.Add(New SqlClient.SqlParameter("@Vend_C_Codigo", SqlDbType.NVarChar, 15)).Value = txtCodigoVend.Text
cmdInsVend.Parameters.Add(New SqlClient.SqlParameter("@Vend_C_Nombre", SqlDbType.NVarChar, 30)).Value = txtNombreVend.Text
cmdInsVend.Parameters.Add(New SqlClient.SqlParameter("@Vend_N_Comision", SqlDbType.SmallInt)).Value = txtComisionVend.Text
cmdInsVend.Parameters.Add(New SqlClient.SqlParameter("@Vend_N_Cuota", SqlDbType.SmallInt)).Value = txtCuotaVend.Text
cmdInsVend.Parameters.Add(New SqlClient.SqlParameter("@Vend_B_Inactivo", SqlDbType.Bit)).Value = chkInactivoVend.Checked
cmdInsVend.Parameters.Add(New SqlClient.SqlParameter("@Vend_C_Direccion1", SqlDbType.NVarChar, 40)).Value = txtDireccion1Vend.Text
cmdInsVend.Parameters.Add(New SqlClient.SqlParameter("@Vend_C_Direccion2", SqlDbType.NVarChar, 40)).Value = txtDireccion2Vend.Text
cmdInsVend.Parameters.Add(New SqlClient.SqlParameter("@Vend_C_Cedula", SqlDbType.NVarChar, 13)).Value = txtCedulaVend.Text
cmdInsVend.Parameters.Add(New SqlClient.SqlParameter("@Vend_C_Telefono1", SqlDbType.NVarChar, 13)).Value = txtTelefono1Vend.Text
cmdInsVend.Parameters.Add(New SqlClient.SqlParameter("@Vend_C_Telefono2", SqlDbType.NVarChar, 13)).Value = txtTelefono2Vend.Text
cmdInsVend.Parameters.Add(New SqlClient.SqlParameter("@Vend_C_Email", SqlDbType.NVarChar, 50)).Value = txtEmailVend.Text
cmdInsVend.Connection = dbConexion.dbConexion
cmdInsVend.CommandType = CommandType.StoredProcedure
cmdInsVend.CommandText = "SP_INS_VENDEDORES"
dbConexion.dbConexion.Open()
cmdInsVend.ExecuteNonQuery()
dbConexion.dbConexion.Close()
Catch ex As Exception
MessageBox.Show(ex.Message, "Error")
dbConexion.dbConexion.Close()
End Try
Call LIMPIAR()
End Sub
-----------------------------------------------------------------------------------------------------------------------------
Valora esta pregunta


0