V?RIOS DATAADAPTER E DATATABLE

LUART 09/06/2016 16:30:27
#463261
Tenho um form com vários combobox, mas percebi que tive que individualizar os DataAdapters e DataTables Pois o registro de um campo repetia-se nos outros sem a individualização, mas o código ficou muito grande (São 42 Combobox, parei na metade). Será que estou fazendo corretamente? Alguém poderia me dar uma sugestão para deixar o código mais enxuto e mais rápido? A lentidão também foi um dos problemas ocorridos.

 
Dim CnnStr As String = [Ô]Provider=Microsoft.ACE.OLEDB.12.0;Data Source=[Ô] & My.Application.Info.DirectoryPath & [Ô]\bd1.accdb[Ô]
Dim Cnn As New OleDb.OleDbConnection(CnnStr)
Dim CnnConv As String = [Ô]SELECT DISTINCT conv FROM conv[Ô]
Dim Cmd As New OleDb.OleDbCommand(CnnConv, Cnn)
Cnn.Open()

Dim ConvDataAdapter As New OleDb.OleDbDataAdapter(Cmd)
Dim ConvDataAdapter2 As New OleDb.OleDbDataAdapter(Cmd)
Dim ConvDataAdapter3 As New OleDb.OleDbDataAdapter(Cmd)
Dim ConvDataAdapter4 As New OleDb.OleDbDataAdapter(Cmd)
Dim ConvDataAdapter5 As New OleDb.OleDbDataAdapter(Cmd)
Dim ConvDataAdapter6 As New OleDb.OleDbDataAdapter(Cmd)
Dim ConvDataAdapter7 As New OleDb.OleDbDataAdapter(Cmd)
Dim ConvDataAdapter8 As New OleDb.OleDbDataAdapter(Cmd)
Dim ConvDataAdapter9 As New OleDb.OleDbDataAdapter(Cmd)
Dim ConvDataAdapter10 As New OleDb.OleDbDataAdapter(Cmd)
Dim ConvDataAdapter11 As New OleDb.OleDbDataAdapter(Cmd)
Dim ConvDataAdapter12 As New OleDb.OleDbDataAdapter(Cmd)
Dim ConvDataAdapter13 As New OleDb.OleDbDataAdapter(Cmd)
Dim ConvDataAdapter14 As New OleDb.OleDbDataAdapter(Cmd)
Dim ConvDataAdapter15 As New OleDb.OleDbDataAdapter(Cmd)
Dim ConvDataAdapter16 As New OleDb.OleDbDataAdapter(Cmd)
Dim ConvDataAdapter17 As New OleDb.OleDbDataAdapter(Cmd)
Dim ConvDataAdapter18 As New OleDb.OleDbDataAdapter(Cmd)
Dim ConvDataAdapter19 As New OleDb.OleDbDataAdapter(Cmd)
Dim ConvDataAdapter20 As New OleDb.OleDbDataAdapter(Cmd)
Dim ConvDataAdapter21 As New OleDb.OleDbDataAdapter(Cmd)
Dim ConvDataAdapter22 As New OleDb.OleDbDataAdapter(Cmd)

Dim dtconv As New DataTable
Dim dtconv2 As New DataTable
Dim dtconv3 As New DataTable
Dim dtconv4 As New DataTable
Dim dtconv5 As New DataTable
Dim dtconv6 As New DataTable
Dim dtconv7 As New DataTable
Dim dtconv8 As New DataTable
Dim dtconv9 As New DataTable
Dim dtconv10 As New DataTable
Dim dtconv11 As New DataTable
Dim dtconv12 As New DataTable
Dim dtconv13 As New DataTable
Dim dtconv14 As New DataTable
Dim dtconv15 As New DataTable
Dim dtconv16 As New DataTable
Dim dtconv17 As New DataTable
Dim dtconv18 As New DataTable
Dim dtconv19 As New DataTable
Dim dtconv20 As New DataTable
Dim dtconv21 As New DataTable
Dim dtconv22 As New DataTable

ConvDataAdapter.Fill(dtconv)
ConvDataAdapter2.Fill(dtconv2)
ConvDataAdapter3.Fill(dtconv3)
ConvDataAdapter4.Fill(dtconv4)
ConvDataAdapter5.Fill(dtconv5)
ConvDataAdapter6.Fill(dtconv6)
ConvDataAdapter7.Fill(dtconv7)
ConvDataAdapter8.Fill(dtconv8)
ConvDataAdapter9.Fill(dtconv9)
ConvDataAdapter10.Fill(dtconv10)
ConvDataAdapter11.Fill(dtconv11)
ConvDataAdapter12.Fill(dtconv12)
ConvDataAdapter13.Fill(dtconv13)
ConvDataAdapter14.Fill(dtconv14)
ConvDataAdapter15.Fill(dtconv15)
ConvDataAdapter16.Fill(dtconv16)
ConvDataAdapter17.Fill(dtconv17)
ConvDataAdapter18.Fill(dtconv18)
ConvDataAdapter19.Fill(dtconv19)
ConvDataAdapter20.Fill(dtconv20)
ConvDataAdapter21.Fill(dtconv21)
ConvDataAdapter22.Fill(dtconv21)

CB8hConvv1.DataSource = dtconv
CB8hConvv1.DisplayMember = [Ô]conv[Ô]
CB8hConvv1.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v1[Ô]).ToString() & [Ô][Ô]

CB8h15minConvv2.DataSource = dtconv2
CB8h15minConvv2.DisplayMember = [Ô]conv[Ô]
CB8h15minConvv2.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v2[Ô]).ToString() & [Ô][Ô]

CB8h30minConvv3.DataSource = dtconv3
CB8h30minConvv3.DisplayMember = [Ô]conv[Ô]
CB8h30minConvv3.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v3[Ô]).ToString() & [Ô][Ô]

CB8h45minConvv4.DataSource = dtconv4
CB8h45minConvv4.DisplayMember = [Ô]conv[Ô]
CB8h45minConvv4.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v4[Ô]).ToString() & [Ô][Ô]

CB9hConvv5.DataSource = dtconv5
CB9hConvv5.DisplayMember = [Ô]conv[Ô]
CB9hConvv5.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v5[Ô]).ToString() & [Ô][Ô]

CB9h15minConvv6.DataSource = dtconv6
CB9h15minConvv6.DisplayMember = [Ô]conv[Ô]
CB9h15minConvv6.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v6[Ô]).ToString() & [Ô][Ô]

CB9h30minConvv7.DataSource = dtconv7
CB9h30minConvv7.DisplayMember = [Ô]conv[Ô]
CB9h30minConvv7.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v7[Ô]).ToString() & [Ô][Ô]

CB9h45minConvv8.DataSource = dtconv8
CB9h45minConvv8.DisplayMember = [Ô]conv[Ô]
CB9h45minConvv8.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v8[Ô]).ToString() & [Ô][Ô]

CB10hConvv9.DataSource = dtconv9
CB10hConvv9.DisplayMember = [Ô]conv[Ô]
CB10hConvv9.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v9[Ô]).ToString() & [Ô][Ô]

CB10h15minConvv10.DataSource = dtconv10
CB10h15minConvv10.DisplayMember = [Ô]conv[Ô]
CB10h15minConvv10.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v10[Ô]).ToString() & [Ô][Ô]

CB10h30minConvv11.DataSource = dtconv11
CB10h30minConvv11.DisplayMember = [Ô]conv[Ô]
CB10h30minConvv11.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v11[Ô]).ToString() & [Ô][Ô]

CB10h45minConvv12.DataSource = dtconv12
CB10h45minConvv12.DisplayMember = [Ô]conv[Ô]
CB10h45minConvv12.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v12[Ô]).ToString() & [Ô][Ô]

CB11hConvv13.DataSource = dtconv13
CB11hConvv13.DisplayMember = [Ô]conv[Ô]
CB11hConvv13.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v13[Ô]).ToString() & [Ô][Ô]

CB11h15minConvv14.DataSource = dtconv14
CB11h15minConvv14.DisplayMember = [Ô]conv[Ô]
CB11h15minConvv14.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v14[Ô]).ToString() & [Ô][Ô]

CB11h30minConvv15.DataSource = dtconv15
CB11h30minConvv15.DisplayMember = [Ô]conv[Ô]
CB11h30minConvv15.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v15[Ô]).ToString() & [Ô][Ô]

CB11h45minConvv16.DataSource = dtconv16
CB11h45minConvv16.DisplayMember = [Ô]conv[Ô]
CB11h45minConvv16.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v16[Ô]).ToString() & [Ô][Ô]

CB12hConvv17.DataSource = dtconv17
CB12hConvv17.DisplayMember = [Ô]conv[Ô]
CB12hConvv17.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v17[Ô]).ToString() & [Ô][Ô]

CB12h15minConvv18.DataSource = dtconv18
CB12h15minConvv18.DisplayMember = [Ô]conv[Ô]
CB12h15minConvv18.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v18[Ô]).ToString() & [Ô][Ô]

CB12h30minConvv19.DataSource = dtconv19
CB12h30minConvv19.DisplayMember = [Ô]conv[Ô]
CB12h30minConvv19.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v19[Ô]).ToString() & [Ô][Ô]

CB12h45minConvv20.DataSource = dtconv20
CB12h45minConvv20.DisplayMember = [Ô]conv[Ô]
CB12h45minConvv20.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v20[Ô]).ToString() & [Ô][Ô]

CB13hConvv21.DataSource = dtconv21
CB13hConvv21.DisplayMember = [Ô]conv[Ô]
CB13hConvv21.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v21[Ô]).ToString() & [Ô][Ô]

CB13h15minConvv22.DataSource = dtconv22
CB13h15minConvv22.DisplayMember = [Ô]conv[Ô]
CB13h15minConvv22.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v22[Ô]).ToString() & [Ô][Ô]

CB13h30minConvv23.DataSource = dtconv6
CB13h30minConvv23.DisplayMember = [Ô]conv[Ô]
CB13h30minConvv23.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v23[Ô]).ToString() & [Ô][Ô]

CB13h45minConvv24.DataSource = dtconv6
CB13h45minConvv24.DisplayMember = [Ô]conv[Ô]
CB13h45minConvv24.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v24[Ô]).ToString() & [Ô][Ô]

CB14hConvv25.DataSource = dtconv6
CB14hConvv25.DisplayMember = [Ô]conv[Ô]
CB14hConvv25.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v25[Ô]).ToString() & [Ô][Ô]

CB14h15minConvv26.DataSource = dtconv6
CB14h15minConvv26.DisplayMember = [Ô]conv[Ô]
CB14h15minConvv26.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v26[Ô]).ToString() & [Ô][Ô]


Grato desde já
KERPLUNK 09/06/2016 17:34:22
#463268
Resposta escolhida
1 - Usar DataAdapter e DataTable para ler dados, é péssima idéia, use DataReader
2 - Pelo que entendi, você está fazendo uma agenda ou algo assim. Você não precisa de uma tabela para cada linha...
JABA 09/06/2016 17:39:23
#463269
Por acaso você está pensando em suicídio?

Brincadeiras à parte. Se não estava funcionando com apenas um, então você devia estar fazendo alguma coisa de errado. Existem bons materiais na net que tratam disso.

http://www.macoratti.net/vbn_dat1.htm
LUART 09/06/2016 18:29:50
#463272
tentei usar DataReader, mas ocorre que o conteúdo da linha é vazio

  Dim CnnStr As String = [Ô]Provider=Microsoft.ACE.OLEDB.12.0;Data Source=[Ô] & My.Application.Info.DirectoryPath & [Ô]\bd1.accdb[Ô]
Dim Cnn As New OleDb.OleDbConnection(CnnStr)
Cnn.Open()

Dim Cmd As New OleDb.OleDbCommand
Cmd.Connection = Cnn
Cmd.CommandText = [Ô]SELECT DISTINCT conv FROM conv[Ô]

Dim reader As OleDb.OleDbDataReader
reader = Cmd.ExecuteReader()

CB8hConvv1.DataSource = reader([Ô]conv[Ô])
CB8hConvv1.DisplayMember = [Ô]conv[Ô]
CB8hConvv1.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v1[Ô]).ToString() & [Ô][Ô]

CB8h15minConvv2.DataSource = reader([Ô]conv[Ô]).ToString
CB8h15minConvv2.DisplayMember = [Ô]conv[Ô]
CB8h15minConvv2.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v2[Ô]).ToString() & [Ô][Ô]

CB8h30minConvv3.DataSource = reader([Ô]conv[Ô])
CB8h30minConvv3.DisplayMember = [Ô]conv[Ô]
CB8h30minConvv3.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v3[Ô]).ToString() & [Ô][Ô]
reader.Close()
Cnn.Close()


Estou errando em algo...

Grato desde já
KERPLUNK 09/06/2016 18:51:29
#463273
Você precisa executar o método [Ô]Read[Ô] antes de acessar os dados. Não esqueça que seu DataReader retornará várias linhas de dados, portanto, você vai precisar também de um Loop
LUART 09/06/2016 21:23:55
#463279
Consegui; creio que agora está correto.

  Dim CnnStr As String = [Ô]Provider=Microsoft.ACE.OLEDB.12.0;Data Source=[Ô] & My.Application.Info.DirectoryPath & [Ô]\bd1.accdb[Ô]
Dim Cnn As New OleDb.OleDbConnection(CnnStr)
Cnn.Open()
Dim CnnConv As String = [Ô]SELECT DISTINCT conv FROM conv[Ô]
Dim Cmd As New OleDb.OleDbCommand(CnnConv, Cnn)


For Each CBS In Me.Controls
If TypeOf CBS Is ComboBox Then
With CBS
.Items.Clear()
End With
End If
Next


Dim TheDataReader As OleDb.OleDbDataReader = Cmd.ExecuteReader()
While TheDataReader.Read()

For Each CBS2 In Me.Controls
If TypeOf CBS2 Is ComboBox Then
With CBS2
.Items.Add(TheDataReader([Ô]conv[Ô]))
End With
End If
Next

End While


CB8hConvv1.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v1[Ô]).ToString() & [Ô][Ô]
CB8h15minConvv2.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v2[Ô]).ToString() & [Ô][Ô]
CB8h30minConvv3.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v3[Ô]).ToString() & [Ô][Ô]
CB8h45minConvv4.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v4[Ô]).ToString() & [Ô][Ô]
CB9hConvv5.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v5[Ô]).ToString() & [Ô][Ô]
CB9h15minConvv6.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v6[Ô]).ToString() & [Ô][Ô]
CB9h30minConvv7.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v7[Ô]).ToString() & [Ô][Ô]
CB9h45minConvv8.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v8[Ô]).ToString() & [Ô][Ô]
CB10hConvv9.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v9[Ô]).ToString() & [Ô][Ô]
CB10h15minConvv10.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v10[Ô]).ToString() & [Ô][Ô]
CB10h30minConvv11.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v11[Ô]).ToString() & [Ô][Ô]
CB10h45minConvv12.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v12[Ô]).ToString() & [Ô][Ô]
CB11hConvv13.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v13[Ô]).ToString() & [Ô][Ô]
CB11h15minConvv14.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v14[Ô]).ToString() & [Ô][Ô]
CB11h30minConvv15.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v15[Ô]).ToString() & [Ô][Ô]
CB11h45minConvv16.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v16[Ô]).ToString() & [Ô][Ô]
CB12hConvv17.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v17[Ô]).ToString() & [Ô][Ô]
CB12h15minConvv18.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v18[Ô]).ToString() & [Ô][Ô]
CB12h30minConvv19.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v19[Ô]).ToString() & [Ô][Ô]
CB12h45minConvv20.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v20[Ô]).ToString() & [Ô][Ô]
CB13hConvv21.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v21[Ô]).ToString() & [Ô][Ô]
CB13h15minConvv22.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v22[Ô]).ToString() & [Ô][Ô]
CB13h30minConvv23.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v23[Ô]).ToString() & [Ô][Ô]
CB13h45minConvv24.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v24[Ô]).ToString() & [Ô][Ô]
CB14hConvv25.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v25[Ô]).ToString() & [Ô][Ô]
CB14h15minConvv26.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v26[Ô]).ToString() & [Ô][Ô]
CB14h30minConvv27.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v27[Ô]).ToString() & [Ô][Ô]
CB14h45minConvv28.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v28[Ô]).ToString() & [Ô][Ô]
CB15hConvv29.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v29[Ô]).ToString() & [Ô][Ô]
CB15h15minConvv30.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v30[Ô]).ToString() & [Ô][Ô]
CB15h30minConvv31.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v31[Ô]).ToString() & [Ô][Ô]
CB15h45minConvv32.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v32[Ô]).ToString() & [Ô][Ô]
CB16hConvv33.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v33[Ô]).ToString() & [Ô][Ô]
CB16h15minConvv34.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v34[Ô]).ToString() & [Ô][Ô]
CB16h30minConvv35.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v35[Ô]).ToString() & [Ô][Ô]
CB16h45minConvv36.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v36[Ô]).ToString() & [Ô][Ô]
CB17hConvv37.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v37[Ô]).ToString() & [Ô][Ô]
CB17h15minConvv38.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v38[Ô]).ToString() & [Ô][Ô]
CB17h30minConvv39.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v39[Ô]).ToString() & [Ô][Ô]
CB17h45minConvv40.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v40[Ô]).ToString() & [Ô][Ô]
CB18hConvv41.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v41[Ô]).ToString() & [Ô][Ô]
CB18h15minConvv42.Text = ds.Tables([Ô]agenda[Ô]).Rows(i).Item([Ô]v42[Ô]).ToString() & [Ô][Ô]

TheDataReader.Close()
Cmd.Dispose()
Cnn.Close()


é dessa maneira mesmo? O Resultado final foi perfeito.
tive que colocar:
 For Each CBS In Me.Controls
If TypeOf CBS Is ComboBox Then
With CBS
.Items.Clear()
End With
End If
Next


Pois cada vez que mudava de posição nos registros, repetia novamente os registros ficando duplicados, triplicados.... Então cada vez que executa há limpeza de todos combobox.

Creio que não tem mais nada para mudar

Obrigado à todos
KERPLUNK 09/06/2016 21:30:03
#463281
Porque ainda está usando o DataSet???
LUART 09/06/2016 22:51:31
#463285
Os Comboboxes acessam tabela conv do bd1.accdb e os textboxes acessam a tabela agenda (valores que existem na coluna conv da tabela conv).
Seria melhor substituir o Dataset? Poderia substituir por outro datareader?

O dataset carrega valores já gravados anteriormente
O datareader ficou para popular as comboboxes, opções essas que o usuário possa escolher
KERPLUNK 09/06/2016 23:00:10
#463287
Acredito que você tenha um conhecimento básico de inglês. O que quer dizer [Ô]Data reader[Ô]? O que você quer é LER DADOS, portanto, usa-se........
LUART 09/06/2016 23:09:48
#463289
Nossa você tem razão. Não estava percebendo o óbvio! Irei converter para datareader. é possível utilizar o mesmo datareader para fazer a função do dataset neste caso?

Grato desde já
LUART 10/06/2016 10:27:18
#463315
Eu até tentei usar Datareader. neste último caso, mas está acima do meu nível de programação.

Mas já está ótimo
Obrigado
Página 1 de 2 [11 registro(s)]
Tópico encerrado , respostas não são mais permitidas