Inserir registo em visual basic

luistojo

Suspenso
Boas,

eu estou a fazer um projecto em visual basic 2006 e tenho que inserir registos novos, neste caso clientes e tipo ao carregar no botao inserir aparecem as caixas todas mas depois queria fazer um botao para gravar so que nao sei como se faz.

Ja pesquisei bastante mas nao encontrei nada, alguem me poderia ajudar?

Obrigado
 
Boas,

eu estou a fazer um projecto em visual basic 2006 e tenho que inserir registos novos, neste caso clientes e tipo ao carregar no botao inserir aparecem as caixas todas mas depois queria fazer um botao para gravar so que nao sei como se faz.

Ja pesquisei bastante mas nao encontrei nada, alguem me poderia ajudar?

Obrigado

gravar onde? ficheiros? base de dados? ....
 
ya tipo tenho a base de dados e cria atraves do vb criar registos eu sei fazer so que depois de inserir os dados nao tenho nada a dar confirmação que o registo foi inserido correctamente.

ate tenho a validação dos campos:
Código:
If IsNumeric(Text1.Text) Then
clienteadodc.CommandType = adCmdText
clienteadodc.RecordSource = "Select * from Clientes where codcliente =" + Text1.Text
Else
MsgBox "Erro, coloque um valor númerico por favor.", , "Erro..."
End If
If IsNumeric(MaskEdBox3.Text) Then
clienteadodc.CommandType = adCmdText
clienteadodc.RecordSource = "Select * from Clientes where bicliente =" + MaskEdBox3.Text
Else
MsgBox "Erro, coloque um valor númerico por favor.", , "Erro..."
End If
If IsNumeric(MaskEdBox2.Text) Then
clienteadodc.CommandType = adCmdText
clienteadodc.RecordSource = "Select * from Clientes where nifcliente =" + MaskEdBox2.Text
Else
MsgBox "Erro, coloque um valor númerico por favor.", , "Erro..."
End If
If IsNumeric(MaskEdBox5.Text) Then
clienteadodc.CommandType = adCmdText
clienteadodc.RecordSource = "Select * from Clientes where telefonecliente =" + MaskEdBox5.Text
Else
MsgBox "Erro, coloque um valor númerico por favor.", , "Erro..."
End If

If IsDate(MaskEdBox1.Text) Then
clienteadodc.CommandType = adCmdText
clienteadodc.RecordSource = "Select * from cliente where datanascimento=#" + MaskEdBox1.Text + "#"
Else
MsgBox "Erro, coloque uma data correcta por favor.", , "Erro..."
End If

clienteadodc.CommandType = adCmdText
clienteadodc.RecordSource = "Select * from Cliente where cpcliente like '" + MaskEdBox4.Text + "%'"
clienteadodc.CommandType = adCmdText
clienteadodc.RecordSource = "Select * from Cliente where localidadecliente like '" + text2.Text + "%'"

clienteadodc.CommandType = adCmdText
clienteadodc.RecordSource = "Select * from cliente where moradacliente like '" + text6.Text + "%'"
clienteadodc.CommandType = adCmdText
clienteadodc.RecordSource = "Select * from cliente where mailcliente like '" + text3.Text + "%'"
clienteadodc.CommandType = adCmdText
clienteadodc.RecordSource = "Select * from cliente where nomecliente like '" + text1.Text + "%'"
 
Última edição pelo moderador:
a bd é em access ou sqlserver?

se for access

Código:
 private  string caminhobd = @"E:\teste2\teste_chamaprogs\teste_chamaprogs\bd\basedados.mdb";

  // grava os dados na bd
        private void gravadados()
        {
       

            string ligacao_bd = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + caminhobd + ";Persist Security Info=False;";
            OleDbConnection ligacao = new OleDbConnection(ligacao_bd);

            OleDbCommand comando = new OleDbCommand("insert into tab values(@id,@nome,@caminho)", ligacao);
            comando.Parameters.Add(new OleDbParameter("@id", da_id_bd() + 1));
            comando.Parameters.Add(new OleDbParameter("@nome", txtnome.Text));
            comando.Parameters.Add(new OleDbParameter("@caminho", txtcaminho.Text));
            ligacao.Open();
            if (comando.ExecuteNonQuery() == 1)
            {
                this.lblerro.Text = "gravado com sucesso";
             
            }
            else
            {
                this.lblerro.Text = "Erro na interligação de dados. Por favor tente mais tarde";
             
            }
            ligacao.Close();
            comando.Dispose();

        }

_________________________________________________________________
se for sqlserver 2005
______________________________________________________________
Código:
private void gravadados2()
        {
        string ligacao_bd = "Initial Catalog=nomebd;Data Source=localhost;Integrated Security=SSPI;";
        
       
          SqlConnection ligacao  = new SqlConnection(ligacao_bd );
         
        //Comando sql que insere cada campo preenchido na respectiva BD      
        SqlCommand comando = new SqlCommand("insert into tabteste values(@nome,@img)", ligacao);
        //Adiciona valores em cada na respectivo campo da bd
        comando.Parameters.Add(new SqlParameter("@nome", tbtxt.Text));
        comando.Parameters.Add(new SqlParameter("@img", ""));
        ligacao.Open();
        if (comando.ExecuteNonQuery() == 1)
            lblerro.Text = "gravado com sucesso";
        else
            lblerro.Text = "Erro na interligação de dados. Por favor tente mais tarde";
        ligacao.Close();
        comando.Dispose();
      
       
            
       

        }
Código:
      comando.Parameters.Add(new SqlParameter("@nome", tbtxt.Text));
        comando.Parameters.Add(new SqlParameter("@img", ""));
antes de fazeres a insersão faz tdas as validações dos campos
depois cria um parameter para cada campo que queres inserir

campo txtnome criei um @nome , txtimg , @img , etc

não precisas de criar um para id , desde que ponhas na tabela o id como automatico no sqlserver

no acess eu so consegui criando um parametro id e por la um que não existia ..
que utilizei um metodo criado por mim
da_id_bd()
que fiz da_id_bd() + 1, pois este metodo devolve um inteiro resultante de um count* da tabela em causa e somo 1 ..


metodo da_id_bd
_____________________________________

Código:
   // danos o numero de registos existentes na tabela
        private int da_id_bd()
        {
            int id_bd = 0;
            DataSet ds_teste = new DataSet();

            //string ligacao_bd = "Initial Catalog=testeforms;Data Source=localhost;Integrated Security=SSPI;";
            string ligacao_bd = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +caminhobd + ";Persist Security Info=False;";
            OleDbConnection ligacao = new OleDbConnection(ligacao_bd);
            ligacao.Open();


            OleDbCommand cmd = ligacao.CreateCommand();

            // faz o select do campo ing da tab teste regerente ao id do value seleccionado na combo
            // Int32.Parse(valor) converte valor para inteiro
            cmd.CommandText = "select count(*) from tab ";

            OleDbDataAdapter da = new OleDbDataAdapter(cmd);

            da.Fill(ds_teste);

            // guarda a imagem regerente ao id seleccionado
            id_bd = Convert.ToInt32(ds_teste.Tables[0].Rows[0][0].ToString());
            //cria o caminho onde se encotra a imagem ja com a imagem
            return id_bd;


        }

no caso de acess

usas estes namespaces

Código:
using System.Data;
using System.Data.OleDb;

no caso de sqlserver

Código:
using System.Data;
using System.Data.SqlClient;
 
Última edição:
Back
Topo