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