NULOS EM DATAGRIDVIEW

MRPESTOQUE 14/11/2013 14:59:50
#431150
pessoal estou com um problema com campos que não tem dados ao carregar um datagridview

para carregar o datagrid uso o código:

Private Sub exibeParcelasCliente(ByVal cod As Integer, Optional ByVal flag As Boolean = True)
Using con As OleDbConnection = GetConnection()
Try
con.Open()
Dim sql As String

sql = [Ô]SELECT ID,maquina,operador FROM Cadastro_maquina order by maquina[Ô]

Dim cmd As New OleDb.OleDbCommand(sql, con)


Dim da As OleDbDataAdapter = New OleDbDataAdapter(cmd)
Dim dt As DataTable = New DataTable
da.Fill(dt)
gdvParcelas.DataSource = dt
formataGridView()


Catch ex As Exception
Throw ex
Finally
con.Close()
End Try
End Using
End Sub

no evento click do dataagrid é código é o seguinte:

Private Sub gdvParcelas_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles gdvParcelas.CellContentClick
Me.txtid.Text = Me.gdvParcelas.CurrentRow.Cells(0).Value
Me.txtmaquina.Text = Me.gdvParcelas.CurrentRow.Cells(1).Value
Me.txtoperador.Text = Me.gdvParcelas.CurrentRow.Cells(2).Value
End Sub

esse evento passo os dados para os textbox mas quando é algum que não tem valor da erro

GUIMORAES 14/11/2013 15:28:04
#431151
Resposta escolhida
.toString no final
NILSONTRES 14/11/2013 23:49:44
#431172
Muda o evento ao invés de CellContentClick coloque no CellClick
LUIS.HERRERA 19/11/2013 10:51:02
#431253
1 - Você atualiza os dados do grid direto no seu banco? Se não então troca o DataTable por DataReader que consome menos recurso, sendo muito mais rápido.

2- Você pode evitar problemas com nulos se tratar ele na camada DAL, logo após receber os dados do banco. Com DataReader você percorreria os registros recebidos for Foreach e passai um string.Empty no lugar dele. Ai no lugar onde você recebe o conteúdo, se tiver de ser numérico você testa se está vazio e troca por Zero, se for texto não precisa fazer nada.

Tópico encerrado , respostas não são mais permitidas