Firebird , VISUAL STUDIO 2010
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.?
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.?
Joelson Reis
Curtidas 0
Respostas
Thiago Porto
08/09/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...
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...
GOSTEI 0
Joelson Reis
08/09/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...
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..
GOSTEI 0
Joelson Reis
08/09/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...
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.
GOSTEI 0
Thiago Porto
08/09/2012
Dentro de uma classe faça assim: primeiro dê uses nas dll do firebird;
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"]);
}GOSTEI 0
Joelson Reis
08/09/2012
Dentro de uma classe faça assim: primeiro dê uses nas dll do firebird;
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
GOSTEI 0