CONVERTER SUB DE ADO PARA ADO.NET

GRIFFON17 30/04/2013 12:20:34
#422722
Pessoal, preciso de ajuda para converter ADO para ADO.NET, pois não tenho a mínima ideia de como fazê-lo.
Para falar a verdade, nem ADO eu sei fazer, um colega me ajudou e depois foi só CTRL+C e CTRL+V

Quem puder ajudar, segue o código:
      Private Sub Listar_Clientes(ByVal sender As System.Object, ByVal e As System.EventArgs)

Dim CN As New ADODB.Connection
Dim RS As New ADODB.Recordset
Dim RamoEscolhido As String = ComboFiltroRamo.Text
Dim CodNome As String
CN.Open([Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data source=C:\Settings\user\Desktop\Windowx.mdb[Ô])

X1.Items.Clear()

If ComboFiltroRamo.Text = [Ô]--- TODOS ---[Ô] Then
RS.Open([Ô]Select Clie_nome,Clie_Cod from Clientes order by Clie_Nome[Ô], CN)
Else

RS.Open([Ô]Select Clie_nome,Clie_Cod from Clientes where Clie_Ramo = [ô][Ô] & RamoEscolhido & [Ô][ô] order by Clie_Nome[Ô], CN)
End If


Do While Not RS.EOF
CodNome = RS.Fields([Ô]Clie_Nome[Ô]).Value & [Ô] --- [Ô] & RS.Fields([Ô]Clie_Cod[Ô]).Value
X1.Items.Add(CodNome)
RS.MoveNext()
Loop

RS.Close()
CN.Close()

End Sub
PEGUDO 01/05/2013 11:55:19
#422777
Em OLEDB, primeiro adicione referência ao Microsoft DAO 3.6 ObJect Library:
Project / Add Reference
Na aba COM, localize Microsoft DAO 3.6 ObJect Library e dê 2 cliques em cima dele.
Depois coloque o códio abaixo dentro de um módulo, como segue:
Repare na seta Vermelha. Estou utilizando um [txt-color=#0000f0]LISTVIEW[/txt-color] que está no [txt-color=#0000f0]Form1[/txt-color]. Troque o [txt-color=#0000f0]ListView[/txt-color] por [txt-color=#0000f0]X1[/txt-color] e o [txt-color=#0000f0]Form1[/txt-color] pelo nome do seu Form onde está o X1.
Exemplo: Suponha que seu form chama-se [txt-color=#0000f0]frmClientes[/txt-color], então ficará [txt-color=#0000f0]frmClientes.X1.Items.Add[/txt-color]
Obs: Esqueci de limpar o controle antes de buscar os clientes. Coloque-o [txt-color=#0000f0]frmClientes.X1.Items.Clear[/txt-color] antes de [txt-color=#0000f0]Reader = PegaClientes(qualFiltro)[/txt-color]


Acho que isso pode te ajudar.
OMAR2011 01/05/2013 17:56:20
#422787
José Antônio de Pegudo.
Ele escreveu Ado e não Dao.
Mas o meu objetivo de escrever é se tem
condições de conectar vb2010 com Dao.
Nunca consegui fazer está referida,mas
se sabe algo poste com faz.
Valeu.
PROFESSOR 02/05/2013 09:37:03
#422809
Resposta escolhida
OleDb é um namespace nativo da .Net, e assim, é desnecessário referenciar a DAO 3.6.
Aliás, utilizar a DAO ou mesmo a ADO até a 2.8 é desaconselhável.
Em relação ao código original, pode ser convertido por exemplo deste modo:

Private Sub Listar_Clientes(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim re As String = ComboFiltroRamo.Text.Trim
Dim sq As String = [Ô]Select Clie_nome,Clie_Cod from Clientes [Ô]
If (re <> [Ô]--- TODOS ---[Ô]) Then sq &= String.Format([Ô]Where (Clie_Ramo = [ô]{0}[ô]) [Ô], re)
sq &= [Ô]Order by Clie_Nome[Ô]
Dim cn As String = [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data source=C:\Settings\user\Desktop\Windowx.mdb[Ô]
Dim tb As New System.Data.DataTable
Using da As New System.Data.OleDb.OleDbDataAdapter(sq, cn)
da.Fill(tb)
End Using
X1.Items.Clear()
For Each dr As DataRow In tb.Rows
X1.Items.Add(String.Format([Ô]{0} --- {1}[Ô], dr([Ô]Clie_Nome[Ô]), dr([Ô]Clie_Cod[Ô]))
Next
End Sub
OMAR2011 02/05/2013 10:09:05
#422812
Tudo bem Professor.
Tem como conectar Dao com Vb2010.
Isso é que quero saber, pois nunca consegui
fazer esta conexão.
KERPLUNK 02/05/2013 12:06:01
#422829
1 - Se você não conhece nem mesmo ADO 2.x e precisou copiar e colar código de um amigo, sugiro que comece por aí, vai ser extremamente difícil para você entender ADO.NET
2 - Você precisa quebrar o paradigma de linguagem
3 - Tem como sim, o VB.NET usar uma estrutura DAO, mas é um retrocesso imenso
GRIFFON17 02/05/2013 17:40:30
#422861
Grande PROFESSOR, direto ao ponto, resposta correta, resolveu meu problema.

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