Array
(
)

Firebird , VISUAL STUDIO 2010

Joelson Reis
   - 08 set 2012

Boa tarde, Pessoal
sou iniciante, alguem pode me auxiliar
tenho uma aplicação feita no visual studio com banco firebird.
queria saber como faço pra inserir o codigo automaticamente na hora de cadastrar "add new item" .
tenho uma tabela aluno com atributo "ID_ALUNO", no formulario na hora que eu for cadastrar novo aluno o campo "ID_ALUNO"
fica em branco, tenho q informar o codigo manualmente.
qual melhor maneira pra ele trazer ultimo codigo do banco, ou outra maneira de aplicação trazer preenchido.?

Thiagoporto
   - 08 set 2012

Você pode fazer dá seguinte forma: faz um método que retorna um inteiro, e faz uma consulta no banco no gerador do id da tabela, assim: 'SELECT GEN_ID (NOME_DO_GERADOR, 1) FROM RDB$DATABASE';
Ai toda vez que vc for cadastrar um novo, pede para o código receber esse método, a outra forma é fazer uma stored de procedure usando insert into...

Joelson Reis
   - 08 set 2012


Citação:
Você pode fazer dá seguinte forma: faz um método que retorna um inteiro, e faz uma consulta no banco no gerador do id da tabela, assim: 'SELECT GEN_ID (NOME_DO_GERADOR, 1) FROM RDB$DATABASE';
Ai toda vez que vc for cadastrar um novo, pede para o código receber esse método, a outra forma é fazer uma stored de procedure usando insert into...


Ok, vou tentar implementar depois posto aqui..

Joelson Reis
   - 10 set 2012


Citação:
Você pode fazer dá seguinte forma: faz um método que retorna um inteiro, e faz uma consulta no banco no gerador do id da tabela, assim: 'SELECT GEN_ID (NOME_DO_GERADOR, 1) FROM RDB$DATABASE';
Ai toda vez que vc for cadastrar um novo, pede para o código receber esse método, a outra forma é fazer uma stored de procedure usando insert into...


amigo desculpa a demora para responder,

entende mas não consegue implementar, tenho um gen_aluno no meu banco, tenho uma trig atualizando certinho.

mas não sei onde implementar isso no visual studio, pois ele não trouxe meu generators.

Thiagoporto
   - 10 set 2012

Dentro de uma classe faça assim: primeiro dê uses nas dll do firebird;
#Código

public string SqlCon = @"User=SYSDBA;Password=masterkey;Database=C:\DB.FDB;DataSource=localhost;";

public int GetId()
{
    var con = new FbConnection(SqlCon);
    var SQL = "SELECT GEN_ID(NOME_DO_GERADOR,1) FROM RDB$DATABASE";
    var cmd = new FbCommand(SQL,con);
    if (conn.State == System.Data.ConnectionState.Closed)
    {
      conn.Open();
    }  
    cmd.CommandType = System.Data.CommandType.Text;                                        
    FBDataReader dr = cmd.ExecuteReader();
    return Convert.ToInt32(dr["nome_do_gerador"]);
}

Joelson Reis
   - 11 set 2012


Citação:
Dentro de uma classe faça assim: primeiro dê uses nas dll do firebird;
#Código

public string SqlCon = @"User=SYSDBA;Password=masterkey;Database=C:\DB.FDB;DataSource=localhost;";

public int GetId()
{
    var con = new FbConnection(SqlCon);
    var SQL = "SELECT GEN_ID(NOME_DO_GERADOR,1) FROM RDB$DATABASE";
    var cmd = new FbCommand(SQL,con);
    if (conn.State == System.Data.ConnectionState.Closed)
    {
      conn.Open();
    }  
    cmd.CommandType = System.Data.CommandType.Text;                                        
    FBDataReader dr = cmd.ExecuteReader();
    return Convert.ToInt32(dr["nome_do_gerador"]);
}


Boa noite,

Thiago

Venho aqui abusar da sua boa vontade,

Mas sou iniciante nessa área de POO,

Fiz a classe ficou assim.

using FirebirdSql.Data.FirebirdClient;

namespace sampleteste
{
class teste
{
public string SqlCon = @"User=SYSDBA;Password=masterkey;Database=C:\guardian\base\GUARDIAN.FDB;DataSource=localhost;";

public int GetId()

{
var con = new FbConnection(SqlCon);
var SQL = "SELECT GEN_ID(GEN_ALUNO,1) FROM RDB$DATABASE";
var cmd = new FbCommand(SQL,con);
if (con.State == System.Data.ConnectionState.Closed)
{
con.Open();
}
cmd.CommandType = System.Data.CommandType.Text;
FbDataReader dr = cmd.ExecuteReader();
return Convert.ToInt32(dr["GEN_ALUNO"]);

}

O campo que ira retorna o GEN_ALUNO, seria esse.

private void iD_ALUNOTextBox_TextChanged(object sender, EventArgs e)
{
teste tst = new teste();
tst.GetId();
}

Como ficaria aqui?

Thiago