Usuário com melhor resposta
COMO ESTE CODIGO FICARIA NO VB 2008

Pergunta
-
AI GALERA GOSTARIA DE SABER COMO FAZER PARA QUE ESSE CODIGO FUNCIONE NO VB 2008.
'Rotina de Consulta:
Public Function Consultar(ByVal intCodigo As Integer) As Variant
Set rs = CreateObject("ADODB.Recordset")
With rs
.Open "select * from pessoal where codigo=" & intCodigo & "", cn, adOpenKeyset, adLockOptimistic
If .RecordCount = 0 Then
MsgBox "Código Inválido", vbExclamation, "Erro"
Else
frmagenda.lblCod = !codigo
frmagenda.txtNome = IIf(IsNull(!nome), Empty, !nome)
frmagenda.txtEnd = IIf(IsNull(!End), Empty, !End)
frmagenda.txtFone = IIf(IsNull(!fone), Empty, !fone)
End If
.Close
End With
End Function
Respostas
-
Fala CarmosJúnior, blz?
Primeiramente Adicione uma referência ao namespace de acesso a dados:
Imports
System.Data.SqlClient
Depois Assim:
'Rotina de Consulta: Public Function Consultar(ByVal intCodigo As Integer) As Object Dim query As String = "select * from pessoal where codigo=" & intCodigo Dim conexao As New SqlConnection("ConnectionString") Dim comando As New SqlCommand(query, conexao) Dim dr As SqlDataReader Try conexao.Open() dr = comando.ExecuteReader() If dr.HasRows Then While dr.Read() frmagenda.lblCod = dr("codigo").ToString() If Not IsDBNull(dr("Nome")) Then frmagenda.txtNome = dr("Nome").ToString() End If If Not IsDBNull(dr("End")) Then frmagenda.txtNome = dr("End").ToString() End If If Not IsDBNull(dr("fone")) Then frmagenda.txtNome = dr("fone").ToString() End If End While Else MsgBox("Código Inválido", vbExclamation, "Erro") End If Catch Console.WriteLine("Ocorreu um Erro.") Finally dr.Close() conexao.Close() End Try End Function
Espero ter te ajudado.
Att. Alan.
Se esta resposta solucionou sua dúvida, “Marque como Resposta”- Sugerido como Resposta Américo Arvani segunda-feira, 1 de fevereiro de 2010 11:07
- Marcado como Resposta CARMOJUNIOR sexta-feira, 5 de fevereiro de 2010 01:57
Todas as Respostas
-
Fala CarmosJúnior, blz?
Primeiramente Adicione uma referência ao namespace de acesso a dados:
Imports
System.Data.SqlClient
Depois Assim:
'Rotina de Consulta: Public Function Consultar(ByVal intCodigo As Integer) As Object Dim query As String = "select * from pessoal where codigo=" & intCodigo Dim conexao As New SqlConnection("ConnectionString") Dim comando As New SqlCommand(query, conexao) Dim dr As SqlDataReader Try conexao.Open() dr = comando.ExecuteReader() If dr.HasRows Then While dr.Read() frmagenda.lblCod = dr("codigo").ToString() If Not IsDBNull(dr("Nome")) Then frmagenda.txtNome = dr("Nome").ToString() End If If Not IsDBNull(dr("End")) Then frmagenda.txtNome = dr("End").ToString() End If If Not IsDBNull(dr("fone")) Then frmagenda.txtNome = dr("fone").ToString() End If End While Else MsgBox("Código Inválido", vbExclamation, "Erro") End If Catch Console.WriteLine("Ocorreu um Erro.") Finally dr.Close() conexao.Close() End Try End Function
Espero ter te ajudado.
Att. Alan.
Se esta resposta solucionou sua dúvida, “Marque como Resposta”- Sugerido como Resposta Américo Arvani segunda-feira, 1 de fevereiro de 2010 11:07
- Marcado como Resposta CARMOJUNIOR sexta-feira, 5 de fevereiro de 2010 01:57
-
Carmo Junior,
Para se conectar ao banco (equivalente ao 'cn' do seu código), utilize a classe xxConnection. Onde xx é o prefixo para o tipo de conexão que você irá utilizar (ex.: OleDbConnection / SqlConnection), lembre-se disso durante esse post.
Lembre-se de fazer a referência (using) ao namespace do tipo de conexão que você irá utilizar (using System.Data.OleDb para o OleDb / using System.Data.SqlClient para Sql).
Feito isso, instâncie uma nova classe do tipo selecionado e especifique a string de conexão. E então abra ela através do method Open.
OleDbConnection cn = new OleDbConnection(@"String_De_Conexao_HERE"); cn.Open();
Agora para executar uma query, instâncie um novo xxCommand e especifique nos parâmetros a query e o objeto de conexão.
OleDbCommand cmd = new OleDbCommand("select * from tabela", cn);
Um objeto equivalente ao RecordSet no teu código, seria o xxDataReader.
OleDbDataReader dr = cmd.ExecuteReader(); //Executa a query (definida acima)
Para a validação equivalente à do código acima "If .RecordCount = 0 Then" seria:
if (!dr.Read()) { MessageBox.Show("Código Inválido", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } else { Text = Convert.ToString(dr["NOME_DO_CAMPO"]); }
E por fim, liberar os recursos utilizados.
cmd.Dispose();
Recomendo que você dê uma olhada no site do macoratti.net, que possui bons artigos em vb6/vb.net. -