• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

tOlas

Pequena dúvida...

12 mensagens neste tópico

Olá a todos!!

Estou a fazer uma aplicação em muito semelhante a um Homebank e precisava de ajuda com um pequeno "problema". Quando quero adicionar um novo utilizador é preenchido um formulário que permite criar o login e a conta. Um dos requisitos é o NIB através do qual é possível conhecer o Banco e a agência onde a conta foi criada. Essa informação está guarda numa tabela BANCO. Ao criar a nova conta deverá ficar guardado na tabela Conta o ID do banco correspondente ao NIB introduzido.

A query funciona correctamente, o problema está em guardar o ID na tabela Conta através do Parameter.Add().

Desde já obrigado!!!

string query = @"Insert into Conta (BancoID, Nib, Saldoinicial, Plafon) values ((Select BancoID from Banco where Banco.Codbanco = @nib1 and Banco.CodAgenc= @nib2), @nib, @saldo, @plafon)";
            SqlCommand cmd = new SqlCommand(query, conn);

            cmd.Parameters.Add("@BancoID",SqlDbType.Int).Value = ???? ;
            cmd.Parameters.Add("@Nib", SqlDbType.Int).Value = nib;
            cmd.Parameters.Add("@Saldoinicial", SqlDbType.Money).Value = saldo;
            cmd.Parameters.Add("@Plafon", SqlDbType.Money).Value = plafon;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A tua dúvida é?

É tares a adicionar um Parameter com o nome "@BancoID" cujo parâmetro não é usado na query?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A duvida está em como fazer para seleccionar o BancoId e guarda-lo na tabela Conta

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Então é só adicionares os parâmetros que estás a usar na query sql aos Parameters, com os valores apropriados.

Ainda não percebi qual é a tua dúvida.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nesse caso a dúvida está nos valores apropriados  :)

Não sei o que te diga. Os valores apropriados só tu os poderás saber....
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Só com estes dados é um bocado difícil ajudar-te já que nem sequer explicas ao certo o que é o BancoID.

Para obteres o BancoID tens que fazer uma query à tabela Banco, suponho eu.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu tenho uma tabela Conta com os campos ContaId, BancoId, Nib, Saldo e Plafond e uma tabela Banco com os campos BancoId, CodBanco, NomeBanco, CodAgenc, NomeAgencia como desponiblizado pelo Banco de Portugal . Os primeiros 4 numeros do Nib correspondem ao codBanco(@nib1) e os 4 seguintes ao CodAgencia(@nib2). O que eu pretendo é que ao introduzir o nib seja guardado na tabela Conta o BancoId correspondente. Como é que faço isso, uma vez que é um parametro que nao é introduzido pelo utilizador( cmd.Parameters.Add("@BancoID",SqlDbType.Int).Value = ???? :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como eu disse fazes um select na tabela Banco para obteres o BancoID que corresponde ao NIB em questão.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

já fiz isso....vê na query em cima. Eu testei a query no sql server e funciona correctamente

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não precisas de adicionar o parâmetro @BancoID. O que precisas é de adicionar os parâmetros @nib e @nib2.

string query = @"Insert into Conta (BancoID, Nib, Saldoinicial, Plafon) values ((Select BancoID from Banco where Banco.Codbanco = @nib1 and Banco.CodAgenc= @nib2), @nib, @saldo, @plafon)";
            SqlCommand cmd = new SqlCommand(query, conn);

            cmd.Parameters.Add("@Nib1",SqlDbType.Int).Value = ... ;
            cmd.Parameters.Add("@Nib2",SqlDbType.Int).Value = ...;
            cmd.Parameters.Add("@Nib", SqlDbType.Int).Value = nib;
            cmd.Parameters.Add("@Saldoinicial", SqlDbType.Money).Value = saldo;
            cmd.Parameters.Add("@Plafon", SqlDbType.Money).Value = plafon;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Era isso mesmo  :wallbash:

Obrigado pela ajuda Saco e Betovsky  ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora