Hola a todos!
estoy intentando cargar un datagridview mediante código, con la particularidad que hay un campo que en la base de datos
guarda 0/-1 y yo quiero que muestre "Si/No". Para ello defino una DataGridViewComboBoxColumn, pero no me funciona del
todo bien. Aparece el combo, me muestra los valores si y no cuando despliego, pero no cuando carga el grid. Me hace lo que
aparece en esta imagen:
http://img263.imageshack.us/img263/772/dibujokjq.jpg
Y este es el código que tengo. ¿Que estoy haciendo mal? Gracias de antemano!!
Código:
Dim Conexion As String
Dim Sql As String
Dim DataAdapter As SqlDataAdapter
Dim DataSet As New DataSet
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Conexion = "Data Source=Equipo;Initial Catalog=Datos;Persist Security Info=True;User ID=Sa;Password=XXXX"
Sql = "SELECT CodigoEmpresa, CodigoArticulo, Inactivo FROM Articulos ORDER BY CodigoArticulo"
DataAdapter = New SqlDataAdapter(Sql, Conexion)
DataSet.Reset()
DataAdapter.Fill(DataSet, "Articulos")
Dim a As New DataGridViewTextBoxColumn
a.DataPropertyName = "CodigoEmpresa"
a.Name = "CodigoEmpresa"
DataGridView1.Columns.Add(a)
Dim b As New DataGridViewTextBoxColumn
b.DataPropertyName = "CodigoArticulo"
b.Name = "CodigoArticulo"
DataGridView1.Columns.Add(b)
Dim c As New DataGridViewComboBoxColumn
c.DataPropertyName = "Inactivo"
c.Name = "Inactivo"
c.DataSource = GetDatos()
c.DisplayMember = "valor"
c.ValueMember = "key"
DataGridView1.Columns.Add(c)
Me.DataGridView1.AutoGenerateColumns = False
Me.DataGridView1.DataSource = Nothing
Me.DataGridView1.DataSource = DataSet.Tables("Articulos")
End Sub
Private Function GetDatos() As DataTable
Dim dt As New DataTable
dt.Columns.Add("valor")
dt.Columns.Add("key")
Dim row As DataRow = dt.NewRow
row("valor") = "Si"
row("key") = "-1"
dt.Rows.Add(row)
row = dt.NewRow
row("valor") = "No"
row("key") = "0"
dt.Rows.Add(row)
Return dt
End Function
Private Sub DataGridView1_DataError(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewDataErrorEventArgs) Handles DataGridView1.DataError
End Sub