Usuario
Errores varios.

Pregunta
-
Hola, necesito algo de ayudita con unos problemas..
1) Estoy queriendo cargar datos de 2 tablas distintas y nose como hacerlo, quisiera que me expliquen como.. Leí que había que insertarse los datos por separado, pero no logro dar con el código.
Public Sub grabarCliente(ByVal al As Clientes)
Dim sel As String
Try
sel = "INSERT INTO Clientes, Domicilios" & _
"(DNI, Apellido, Nombre, Calle, Numero, Barrio, Localidad, Provincia) " & _
"VALUES ('" & _DNI & "','" & _
_Apellido & "','" & _
_Nombre & "','" & _
_Calle & "'," & _Numero & " " & _
_Barrio & "','" & _Localidad & "','" & _
_provincia & "')"
com.CommandText = sel
com.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")
End Try
End SubEsto es lo que tengo, también probé con and (INSERT INTO Clientes and Domicilios) y tampoco obtuve resultados..
2)Necesito un botón para buscar una tupla por DNI y me da error de conversión a tipo integer.
Este es el código del botón. (FORM Cliente)
Private Sub btnBuscardni_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBuscarDNI.Click
ds = al.CargaGrilla(txtDNI.Text)
DataGridView1.DataSource = ds.Tables(0)
End SubTambién coloque en ds el valor de txtDNI como tipo de dato entero pero nada.. así lo coloqué: ds = al.CargaGrilla(CInt(txtDNI.Text)) pero no funcionó.
Y la función CargaGrilla (Modulo Clientes)
Public Function CargaGrilla() As DataSet
da = New SqlDataAdapter("select * from Clientes", con)
ds = New DataSet
dt = New DataTable
da.Fill(ds)
'End Try
Return ds
End Function
Public Function CargaGrilla(ByVal DNI As Integer) As DataSet
da = New SqlDataAdapter("select * from Clientes where DNI = ' & DNI & '", con)
ds = New DataSet
Try
da.Fill(ds)
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")
End Try
Return ds
End FunctionDEsde ya, muchas gracias.
- Cambiado Enrique M. Montejo martes, 30 de julio de 2013 6:47 Acceso a datos
Todas las respuestas
-
no puedes hacer esto
sel = "INSERT INTO Clientes, Domicilios" & _
son dos instrucciones las que debes ejecutar, ademas que debes usar parametros
Public Sub grabarCliente(ByVal al As Clientes) Dim sel As String Try Dim sel As String = "INSERT INTO Clientes " & _ "(DNI, Apellido, Nombre) " & _ "VALUES (@dni, @apellido, @nombre)" Dim com As New SqlCommand(sel, conn) com.Parameters.AddWithValue("@dni", al.DNI) com.Parameters.AddWithValue("@apellido", al.Apellido) com.Parameters.AddWithValue("@nombre", al.Nombre) com.ExecuteNonQuery() Dim sel2 As String = "INSERT INTO Domicilios " & _ "(Calle, Numero, Barrio, Localidad, Provincia) " & _ "VALUES (@Calle, @Numero, @Barrio, @Localidad, @Provincia)" Dim com2 As New SqlCommand(sel, conn) com2.Parameters.AddWithValue("@Calle", al.Calle) com2.Parameters.AddWithValue("@Numero", al.Numero) com2.Parameters.AddWithValue("@Barrio", al.Barrio) com2.Parameters.AddWithValue("@Localidad", al.Localidad) com2.Parameters.AddWithValue("@Provincia", al.Provincia) com2.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, "Error") End Try End Sub
define las variables locales a los metodos y asigna al comando el objeto de conexion
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -
Necesito un botón para buscar una tupla por DNI y me da error de conversión a tipo integer.
Public Function CargaGrilla(ByVal DNI As Integer) As DataTable Try Dim query As String = "select * from Clientes where DNI = @dni" Dim cmd As New SqlCommand(query, con) cmd.Parameters.AddWithValue("@dni", DNI) Dim da As New SqlDataAdapter(cmd) Dim dt New DataTable da.Fill(dt) Return dt Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, "Error") End Try End Function
vuelvo a remarcar que uses parametros
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina