Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Carcleo

RecordSet

Recommended Posts

Ola, gostaria de saber se tem jeito de fazer um RecordSet sem ser nem em ADO nem em DAO?

 

Meu código para conexão do mysql com o VB (sem ODDC) é:

Imports MySql.Data.MySqlClient
'Comentando varias linhas Ctrl + K + C
'Descomentando varias linhas Ctrl + K + U
Public Class DBConnection
	Dim Conexao As MySqlConnection
	Dim cmd As MySqlCommand = New MySqlCommand()
	Dim dt As DataTable
	Public Sub New()
		Conexao = New MySqlConnection()
	End Sub

	Public Sub OpenConnection()
		Dim strConnString As String = "server=localhost;userid=root;password=;database=Vendas"

		If Conexao Is Nothing Or Conexao.State = ConnectionState.Broken Or Conexao.State = ConnectionState.Closed Then
			Conexao = New MySqlConnection()
			Conexao.ConnectionString = strConnString
			Conexao.Open()
		End If

	End Sub

	Public Sub CloseConnection()
		If Conexao.State = ConnectionState.Open Then
			Conexao.Close()
			Conexao.Dispose()
			Conexao = Nothing
		End If
	End Sub
End Class
Se tem, como ficaria então?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Movido Plataforma .NET http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Plataforma .NET » Windows Applications

 

Acho que o RecordSet que você deseja fazer no dotnet é o DataReader, de uma pesquisada. Tem muita coisa sobre como usar.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

pessoal, estou estudando sozinho e estou tendo muita dificuldade para aprender.

primeiro por não ter um professor e segundo porque o pessoal não esta respondendo meus post's.

 

Eu preciso dessa resposta para continuar.

 

conto com voces

 

quintelab, tem como você esplicar um pouco meçlhor tua resposta fazendo um favor?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok.

 

Então vamos la:

no form Clientes, tenho, os textbox's e um gridview exibindo ao mesmo tempo os registros de uma consulta.

junto ao gridview, tenho uma textbox para fazer pesquisa e o resultado do filtro da pesquisa é exibido no mesmo gridview que exibe os dados no load do form.

 

Essa textboix da pesquisa, o cara vai digitando os nomes ew a medida que o cara digita vai filtrando.

Acontece, que quando o form abre(load), as pesições dos registros da gridview e das textbox's (navegação) são as mesmas (1º registro, 2º, 3º etc..) mas, quando começo a digitar na textbox pesquisa e os resultados vão filtrando, dai, o 3º registro da textbox ja não é o mesmo 3º registro que aparece na gridview aí, me joga no mato.

 

Preciso de fazer um forma de pegar ou a posição do registro da gridview ou o CodigoID do registro e comparar com os registros que estão sendo exibidos nas textbox's e ver qual é a posição que o registro filtrado na gridview esta na lista de registros das textbox's.

 

Dai jpogo o registro da grid view pra as textbox e posso edita-los fora da gridview.

Experimenbtei fazer assim, mas deu certo, na hora que cliko em editar edita o primeiro registro:

dt.PrimaryKey = New DataColumn() {dt.Columns(0)} 'Where 0 is the index of the column that's your key
		dr = dt.Rows.Find(m)
E ai, como faço?

meus códigos

Private Sub Clientes_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
		Try
			Dim sql As String = "Select * from " & tabela & " where ativo='S'"
			ds = accDb.ExecuteDS(sql, tabela)
			dt = ds.Tables(tabela)
			DGWClientes.DataSource = ds.Tables(0).DefaultView
			registro = dt.Rows.Count - 1
			exibirDados(registro)
			desabilita()
			If dt.Rows.Count = 0 Then
				Primeiro.Enabled = False
				Anterior.Enabled = False
				Proximo.Enabled = False
				Ultimo.Enabled = False
				Atualizar.Enabled = False
				Eliminar.Enabled = False
				Pesquisar.Enabled = False
			End If
			If dt.Rows.Count > 0 Then
				registro = 0
				Primeiro_Click(Nothing, Nothing)
			Else
				registro = -1
			End If
		Catch ex As Exception
			MessageBox.Show("Erro: " & ex.Message, "Sem conexão", MessageBoxButtons.OK, MessageBoxIcon.Error)
			Exit Sub
		End Try
	End Sub

Private Sub P_Nome_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles P_Nome.TextChanged
		Try
			Dim sql As String = "Select * from " & tabela & " where ativo='S' and nome like '" & P_Nome.Text & "%'"
			ds = accDb.ExecuteDS(sql, tabela)
			DGWClientes.DataSource = ds.Tables(0).DefaultView
		Catch ex As Exception
			MessageBox.Show("Erro: " & ex.Message, "Sem conexão", MessageBoxButtons.OK, MessageBoxIcon.Error)
			Exit Sub
		End Try
	End Sub

	Private Sub Selecionar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Selecionar.Click
		Dim linha As Integer = DGWClientes.CurrentRow.Index
		registro = DGWClientes.Item("clienteID", linha).Value.ToString

		exibirDados2(registro)
	End Sub

 

Private Sub atribuirDados(ByVal dr As DataRow)
		dr("nome") = Nome.Text
		dr("endereco") = Endereco.Text
		dr("email") = Email.Text
	End Sub

	Private Sub exibirDados(ByVal m As Integer)
		Dim i As Integer = dt.Rows.Count - 1
		If m < 0 OrElse i < 0 Then Exit Sub
		'If m > i Then 
		Dim dr As DataRow = dt.Rows(m)

		Codigo.Text = dr("clienteID")
		Nome.Text = dr("nome")
		Endereco.Text = dr("endereco")
		Email.Text = dr("email")
	End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pega loa que ficou pronto.

form de cadastro com load alimentando textbox's e gridviwie.

parte de pesquisa dentro do mesmo form de cadastro (nada de abrir janelinha) com a mesma gridview filtrando:

http://www.carcleo.com/vendas.zip

será necessario criar as taelas no banco (já tem um arquivo .sql com as tabelas criadas la)

 

Agora preciso de:

1) Validaçao de formulario,

if nome.txt = "" then 
 messagebox.show("Preencha Nome!") 
 nome.focus() 
 exit
endif
No vb não to sabendo fazer. Ele da a mensagem "Preencha Nome!", joga o focus no campo nome mas não para a execução e acaba gravando mesmo assim com campos vazios.

2) Uma função que valide cpf/cnpj

3) E, uma forma de fazer meu programinha de desktop em vb abrir as janelas dos forms filhos (isMDIContainer:=False) abrirem maximizadas. Eu coloco na ultima propiedade do form, na propriedade windows state do form Maximized mas não maximiza de jeito nenhum.

 

O que pode ser feitro nesses 3 casos?

 

Um abç!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para parar a execução utilize um return ou Break. Não me lembro qual deles é o correto no VB.

Validação de CPF/CNPJ: http://www.macoratti.net/vbn_vdoc.htm

Mas você esta colocando nos forms filhos ou no form que esta chamando? O correto seria colocar nos forms filhos.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

não mostra break na lista de opções, return e exit não estão parando a execução

valeu pelo funçao cnpj

to colocando nos forms filhos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui, aproveitando o post,como faço para fazer o valor f ou j da variavel tip chegar la no final da clausula insert no sql?

Só da que a variavel não retornou valor.

Esse tipo1 e tipo2 são RadioButtons pois procurei RadioGroup no VS até encontrar e não encontrei!(rsrs)

Private Sub incluirRegistro(ByVal dr As DataRow)
		Dim tip As String
		Dim databanco As Date = Date.Now
		If tipo1.Checked = True Then
			tip = "f"
		End If
		If tipo2.Checked = True Then
			tip = "j"
		End If

		Dim sql As String = "INSERT INTO " & tabela & " (nome,cpf_cnpj,endereco,email,ativo,data,tipo)VALUES ('" & Nome.Text & "','" & cpf_cnpj.Text & "','" & Endereco.Text & "','" & Email.Text & "','S','" & databanco & "','" & tip & "')"
		ds = accDb.ExecuteDS(sql, tabela)
		Try
			MessageBox.Show("registro de Usuário incluido com sucesso.")
			exibirDados(registro)
		Catch ex As Exception
			MessageBox.Show("Erro ao efetuar a conexão com a base de dados : " + ex.Message)
		End Try
	End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não querendo incomodar mas ja incomodando,. preciso de + uma força de voces não esquecendo de agradecer pelas ajudas ja a mim prestadas.

Seguinte:

tenho o código de insert no banco e, quando chega na parte de gravar dinheiro no banco, ai ele tira da virgula pra traz tipo digito 31,25 vai para o banco 35. O ,25 não vai.

Gostaria de saber onmde estou errando:

 

Eis o código: (no banco é decimal(5,2))

 

Private Sub incluirRegistro(ByVal dr As DataRow)
		Dim sql As String = "INSERT INTO " & tabela & " (descricao,preco,unidade,ativo,data)VALUES ('" & Descricao.Text & "','" & Preco.Text & "','" & Unidade.Text & "','S','" & Format(Date.Today, "yyyy-MM-dd") & "')"
		ds = accDb.ExecuteDS(sql, tabela)
		Try
			MessageBox.Show("Produto registrado com sucesso.")
			exibirDados(registro)
		Catch ex As Exception
			MessageBox.Show("Erro ao efetuar a conexão com a base de dados : " + ex.Message)
		End Try
	End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.