Tengo el vb 2005 express y al momento de tratar de aplicar los cambios a la
bd me sale el siguiente mensaje de error.
"la generacion SQl dinámica no es compatible con con SelectCommand que no
devuelve ninguna informacion sobre columnas clave".
El problema es que todo lo estoy haciendo por codigo, no uso los data
adapter que se generan automaticamente, porque no sale la conexion hacia Sql
2000.
De todas maneras, mi codigo es el siguiente:
Public Class catCte
'ponemos las declaraciones
Dim conexion As SqlConnection
Dim orden As SqlDataAdapter
Dim comando As SqlCommand
Dim constructor As SqlCommandBuilder
Dim miTabla As DataSet
Dim bSource As BindingSource
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
' enlazando conexion a la base de datos
conChain = My.Settings.sqlChain
'conchain= Data Source=;Initial Catalog=mrp-ing;Integrated
Security=True
conexion = New SqlConnection(conChain)
comando = New SqlCommand("select * from tblClientes", conexion)
' respetar el espacion en blanco en DATA SOURCE
' cargando el adapter con la instruccion sql
orden = New SqlDataAdapter(comando)
constructor = New SqlCommandBuilder(orden)
'' cargando el dataset
miTabla = New DataSet()
orden.Fill(miTabla, "tblClientes")
'bsource es el binding para los datos de los textbox
bSource = New BindingSource(miTabla, "tblClientes")
'DGVdirecciones es un datagridview
DGVDirecciones.DataSource = miTabla
DGVDirecciones.DataMember = "tblClientes"
'les cargamos los bindings a los textos
txtCtaCont.DataBindings.Add("text", bSource, "cte_txtCuenta")
txtId.DataBindings.Add("text", bSource, "txtIdCliente")
txtNFiscal.DataBindings.Add("text", bSource, "txtnomfiscal")
txtNCorto.DataBindings.Add("text", bSource, "Cte_txtNomComercial")
txtRfc.DataBindings.Add("text", bSource, "cte_txtRFC")
txtCurp.DataBindings.Add("text", bSource, "cte_txtCurp")
txtTel.DataBindings.Add("text", bSource, "cte_txtTel")
txtFax.DataBindings.Add("text", bSource, "cte_txtFax")
txtDom.DataBindings.Add("text", bSource, "cte_txtDomicilio")
txtCol.DataBindings.Add("text", bSource, "cte_txtColonia")
txtPob.DataBindings.Add("text", bSource, "cte_txtPoblacion")
txtEdo.DataBindings.Add("text", bSource, "cte_txtEntidad")
txtPais.DataBindings.Add("text", bSource, "cte_txtPais")
txtcp.DataBindings.Add("text", bSource, "cte_txtCodPtl")
txtWeb.DataBindings.Add("text", bSource, "cte_txtWeb")
Tipo.DataBindings.Add("text", bSource, "cte_ltaTipos")
Sector.DataBindings.Add("text", bSource, "cte_ltaSector")
'le ponemos al navegador la binding source
CteNavigator.BindingSource = bSource
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Try
'hacemos lo que se supone que actualiza
bSource.EndEdit()
'el error sale aqui
orden.Update(miTabla, "tblClientes") 'error AYUDA!!
miTabla.AcceptChanges()
MsgBox("Update successful")
Catch ex As Exception
MsgBox("Update failed " & ex.Message & ex.ToString)
End Try
End Sub
End Class
Leer las respuestas