none
recuperar valor de Identity que esta dentro de uma classe ? RRS feed

  • Pergunta

  • Olá Pessoal, sou novo aqui no forum e novo tb em Asp.net tenho estudado bastante mas me deparei com um problema que nao achei resposta e gostaria que alguém pudesse me ajudar.

    A ideia é a seguinte : cadastrar uma categoria de fotos e recuperando seu ID e cadastrar fotos em outra tabela relacionando os Id´s.

    No codigo de inserção to fazendo o seguinte:

     public void AddGaleria(string comentarios, bool exibir, DateTime data)

    {

    using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["dbAccess"].ConnectionString))

    {

    using (SqlCommand cmdCommand = new SqlCommand("INSERT INTO galerias (comentarios, exibir, data) VALUES(@comentarios,@exibir, @data) Select @@Identity;", conn))

    {

    cmdCommand.CommandType = CommandType.Text;

    cmdCommand.Parameters.AddWithValue("@comentarios", comentarios);

    cmdCommand.Parameters.AddWithValue("@exibir", exibir);

    cmdCommand.Parameters.AddWithValue("@data", data);

    conn.Open();

    object galeria = cmdCommand.ExecuteScalar();

    galerias idGaleria = new galerias(Convert.ToInt32(galeria));

    }

    conn.Close();

    }

    }

    Tendo galerias o seginte:....................................................

    using System;

    public class galerias

    {

    #region tbl Galeria

    private int _idGaleria;

    public int IdGaleria

    {

    get { return _idGaleria; }

    set { _idGaleria = value; }

    }

    private string _comentarios;

    public string Comentarios

    {

    get { return _comentarios; }

    set { _comentarios = value; }

    }

    private bool _exibir;

    public bool Exibir

    {

    get { return _exibir; }

    set { _exibir = value; }

    }

    private DateTime _data;

    public DateTime Data

    {

    get { return _data; }

    set { _data = value; }

    }

    #endregion

    public galerias(int IdGaleria, string Comentarios, bool Exibir, DateTime Data)

    {

    _idGaleria = IdGaleria;

    _comentarios = Comentarios;

    _exibir = Exibir;

    _data = Data;

    }

    public galerias(int idGaleria)

    {

    _idGaleria = idGaleria;

    }

    }

     

    como eu faço pra pegar o ID que estou recuperando e coloca-lo em uma pagina com Session por exemplo ?

     

    Obrigado

    Paulo Lima Jr.

    segunda-feira, 22 de janeiro de 2007 13:12

Todas as Respostas

  • Você não poderia usar uma trigger para isto ?

    Recuperando o id da foto com Select @@Identity e gravando-o nesta outra tabela para relacionamento.

     

    quarta-feira, 24 de janeiro de 2007 13:37
  • Paulo,


    É simples faça seu método retornar um inteiro com o id:


     public int AddGaleria(string comentarios, bool exibir, DateTime data)
    {
     int idgaleria = 0;

    using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["dbAccess"].ConnectionString))
    {
    using (SqlCommand cmdCommand = new SqlCommand("INSERT INTO galerias (comentarios, exibir, data) VALUES(@comentarios,@exibir, @data) Select @@Identity;", conn))
    {

    cmdCommand.CommandType = CommandType.Text;
    cmdCommand.Parameters.AddWithValue("@comentarios", comentarios);
    cmdCommand.Parameters.AddWithValue("@exibir", exibir);
    cmdCommand.Parameters.AddWithValue("@data", data);
    conn.Open();

     idgaleria = (int) cmdCommand.ExecuteScalar();

    galerias idGaleria = new galerias(Convert.ToInt32(galeria));

    }

    conn.Close();

    }
     retunr idgaleria;
    }

    e pra consumir e armazenar esse valor faça:


    int Id = 0;
    id = AddGaleria("comentarios", true, DateTime.Now);

    session["idgaleria"] = id;

     

    Espero ter ajudado.


    []'s

    quarta-feira, 31 de janeiro de 2007 17:19