ERRO DE LOCALIZAR LINHA EM DATASET

AUGUSTTO 21/08/2009 20:47:15
#320633
Estou com problema em localizar um linha no meu data set segue o codigo:

Dim MarkupLinhaRow() As Data.DataRow

MarkupLinhaRow = BancoDataSet.Tables([Ô]MarkupCompra[Ô]).Select([Ô]CodigoItemEstoque = 32001 and Ano = 2009[Ô])
MarkupLinhaRow(0)([Ô]AgostoQuantidade[Ô]) = CInt(EstoqueDisponivelTextBox.Text)
MarkupLinhaRow(0)([Ô]AgostoQuantidade[Ô]) = CDec(CustoReposicaoTextBox.Text)

esse codigo da erro de [Ô]o indice estava fora dos limites da matriz[Ô] mas eu não sei arrumar localizar o erro e arrumar, dai eu tentei desse jeito

Dim MarkupLinhaRow As BancoDataSet.MarkupCompraRow

outra coisa no site do macoratti mostra de como manipular o Dataset
[ô]MarkupLinhaRow = BancoDataSet.MarkupCompra.FindByCodigoItemEstoqueAno(32001, 2009)
[ô]MarkupLinhaRow.AgostoQuantidade = CInt(EstoqueDisponivelTextBox.Text)
[ô]MarkupLinhaRow.AgostoValor = CDec(CustoReposicaoTextBox.Text)

esse codigo da erro de: [Ô]referencia de objeto não definida para uma instancia de um objeto[Ô]

Detalhe existe registro no banco

Estrutura da tabela MarkupCompra:

CodigoItemEstoque <---Chave
JaneiroQuantidade
JaneiroValor
.
.

.
DezembroQuantidade
DezembroValor
Ano <----Chave

Com o seguintes valores:

CodigoItemEstoque = 32001
JaneiroQuantidade = 0
JaneiroValor = 0
.
AgostoQuantidade = 100
AgostoValor = 50,00
.
DezembroQuantidade = 0
DezembroValor = 0
Ano = 2009

O Objetivo desse codigo é localizar a linha e atualizar so valores dos text[ô]s

EMERSONTADEU 25/08/2009 23:56:23
#320966
Procure não fazer select em datatable, crie tableviews, por causa do garbage colector nem sempre vc consegue dispose tudo do objeto direito para recriar outro igual.

Cria uma tableview que ela aceitará melhor uma sequencia de filtros.

Algo assim : No caso cada vez que carrega a tela cria a dv para carregar um ds, se fosse uma dt (table) o gc não limparia direito e daria pau

Citação:


Private Sub frmMapper_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim dvMapper As DataView
Dim blnVIS As Boolean = Me.Visible
mdiCliente.Enabled = Not blnVIS
frmCliente3.Enabled = Not blnVIS

If blnVIS = False Then
frmCliente3.Focus()

Else

Dim strSQL As String = [Ô][Ô]
dvMapper = New DataView(Me.DsCliente.Tables([Ô]cliente[Ô]), strSQL, [Ô]id[Ô], DataViewRowState.CurrentRows)

Dim strIds As String = [Ô][Ô]
Dim count As Integer = dvMapper.Count

For i As Integer = 0 To count - 1
strIds += dvMapper.Item(i).Item(1).ToString
If i < count Then
strIds += [Ô],[Ô]
End If
Next
If strIds.Length > 0 Then
strSQL = [Ô] id <> [Ô] & Me.Newid & [Ô] AND id_integrado NOT IN ([Ô] & strIds & [Ô])[Ô]
Else
strSQL = [Ô] id <> [Ô] & Me.Newid
End If

Me.ClienteTableAdapter.Fill(Me.DsCliente.cliente)

End If

End Sub





Espero que abra caminhos ... resolveu por aqui.
Tópico encerrado , respostas não são mais permitidas