buenas amigos, estoy tratando de hacer algo muy sencillo que me esta trayendo muchos problemas, estoy armando un formulario de clientes, el de agregar, modificar y eliminar ya estan terminados, ahora estoy por el formulario de consulta y me esta trayendo demasiados problemas !!!! aver si alguno me puede hechar una mano. xq el codigo que hice, me esta tirando un error de q no puede contener datos nulos. ( pero si necesito que me permita tener datos nulos, xq no obligo a q carguen cada uno de los campos de cada cliente) la columna que les marque en rojo, es la que al ejecutar el proyecto, me marca error.
les pego el codigo
Private Sub consultaclientes_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim cn As New OleDbConnection( _
"provider=SQLOLEDB.1;" & _
"Integrated Security=SSPI; " & _
"Persist Security Info=False;" & _
"User ID=sa;" & _
"Password=123456;" & _
"Initial Catalog=OperadoresMT;" & _
"Data Source=cristian\SQLEXPRESS")
cn.Open()
'aca en el load llamo a la funcion del combo .
cargar_Combo(CMBnombre, "Select Nombre From Clientes")
CMBnombre.SelectedIndex = -1
'Esta es la funcion del combo que funciona correctamente y me trae los datos
Private Sub cargar_Combo( _
ByVal ComboBox As ComboBox, _
ByVal sql As String)
' nueva conexión indicando al SqlConnection la cadena de conexión
'Dim cn As New OleDbConnection(cn)
Try
' Abrir la conexión a Sql
cn.Open()
' Pasar la consulta sql y la conexión al Sql Command
Dim cmd As New OleDbCommand(Sql, cn)
' Inicializar un nuevo SqlDataAdapter
Dim dda As New OleDbDataAdapter(cmd)
'Crear y Llenar un Dataset
Dim dds As New DataSet
dda.Fill(dds)
' asignar el DataSource al combobox
ComboBox.DataSource = dds.Tables(0)
' Asignar el campo a la propiedad DisplayMember del combo
ComboBox.DisplayMember = dds.Tables(0).Columns(0).Caption.ToString
Catch ex As Exception
MessageBox.Show(ex.Message.ToString, _
"error", MessageBoxButtons.OK, _
MessageBoxIcon.Error)
Finally
If cn.State = ConnectionState.Open Then
cn.Close()
End If
End Try
End Sub
'Y aca es donde tengo el problema, cuando quiero de acuerdo al nombre que elijan, me traslade el resto de los datos a los distintos textbox que tengo creados.
Private Sub CMBnombre_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CMBnombre.Click
Dim cn As New OleDbConnection( _
"provider=SQLOLEDB.1;" & _
"Integrated Security=SSPI; " & _
"Persist Security Info=False;" & _
"User ID=sa;" & _
"Password=123456;" & _
"Initial Catalog=OperadoresMT;" & _
"Data Source=cristian\SQLEXPRESS")
cn.Open()
Dim da As OleDbDataAdapter
Dim ds As New DataSet
da = New OleDbDataAdapter("Select * From Clientes WHERE Nombre='" & CMBnombre.Text & "'", cn)
da.Fill(ds, " Clientes")
If ds.Tables("Clientes ").DefaultView.Count > 0 Then
txtdireccion.Text = ds.Tables("Clientes").DefaultView.Item("Direccion" ).ToString
txtlocalidad.Text = ds.Tables("Clientes").DefaultView.Item("Localidad" ).ToString
txtprovincia.Text = ds.Tables("Clientes").DefaultView.Item("Localidad" ).ToString
txtpais.Text = ds.Tables("Clientes").DefaultView.Item("Localidad" ).ToString
txttelefono.Text = ds.Tables("Clientes").DefaultView.Item("Localidad" ).ToString
txtcuit.Text = ds.Tables("Clientes").DefaultView.Item("Localidad" ).ToString
txtcontacto.Text = ds.Tables("Clientes").DefaultView.Item("Localidad" ).ToString
txtobservaciones.Text = ds.Tables("Clientes").DefaultView.Item("Localidad" ).ToString
End If
End Sub