none
nao consigo pegar os dados do retorno no TableAdapter, como eu faço? RRS feed

  • Pergunta

  • Ola pessoal
    criei um tableApater, ele faz a inserção normal, porem, quando eu quero pegar o retorno de um select de uma procedure eu nao consigo, sei que a procedure esta sendo executada sem erros, mais nao consegui pegar os dados.
    Veja o codigo que tentei, mais nao consegui

    1-tentei assim
            public dsPess.SPPessSelectDataTable PessCarrega() {
                dsPessTableAdapters.SPPessSelectTableAdapter ta = new CadastroLib.dsPessTableAdapters.SPPessSelectTableAdapter();
                return ta.GetData(PessID);
            }
    2-tentei depois assim
            public void PessCarrega() {
                dsPessTableAdapters.SPPessSelectTableAdapter ta = new CadastroLib.dsPessTableAdapters.SPPessSelectTableAdapter();
                 ta.GetData(PessID);
                PessCPF =  @PessCPF;
            }


    em ambas nao ocorre erro, porem, eu nao consigo passar o valor pra variavel, na consulta, tem uma colunca chamada PessCPF, que tentei fazer referencia e nao consegui pegar os valores.

    alguem tem a cura?
    abs
    t+
    quarta-feira, 2 de maio de 2007 19:39

Respostas

  • Oi !

     

    A primeira está certa, apesar de que eu faria PessCarrega receber como parâmetro o PessID.

     

    Utilize da seguinte forma :

     

    Code Snippet

    string PessCPF=PessCarrega().rows[0]["PessCPF"];

     

     

    []'s

     

    quarta-feira, 2 de maio de 2007 19:53
  • Oi !

     

    1)

     

    Code Snippet

            public void PessCarrega() {
                dsPessTableAdapters.SPPessSelectTableAdapter ta = new CadastroLib.dsPessTableAdapters.SPPessSelectTableAdapter();

              SPPessSekectTable=ta.getData(PessID);
                PessNome = Convert.ToString(SPPessSekectTable.Rows[0]["PessNome"]);
                PessCPF = Convert.ToString(SPPessSekectTable.Rows[0]["PessCPF"]);
                PessSexoID = Convert.ToString(SPPessSekectTable.Rows[0]["PessSexoID"]);
            }

     

    2) Não faria, voltaria ao exemplo da datatable.

     

    []'s

     

     

     

    quinta-feira, 3 de maio de 2007 22:55

Todas as Respostas

  • Oi !

     

    A primeira está certa, apesar de que eu faria PessCarrega receber como parâmetro o PessID.

     

    Utilize da seguinte forma :

     

    Code Snippet

    string PessCPF=PessCarrega().rows[0]["PessCPF"];

     

     

    []'s

     

    quarta-feira, 2 de maio de 2007 19:53
  • no primeiro caso eu entendo que ele pega o valor direto da variavel/metodo certo?
    veja o codigo completo

    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace CadastroLib
    {
        public class Pess {
            private int pessID;
            private String pessNome;
            private String pessCPF;
            private int pessProfID;
            private byte pessSexID;
            private DateTime pessNascDt;
            private byte pessSttID;

            public int PessID {
                get { return this.pessID; }
                set {this.pessID = value;}
           }

            public String PessNome
            {
                get { return this.pessNome; }
                set { this.pessNome = value; }
            }

            public String PessCPF
            {
                get { return this.pessCPF; }
                set { this.pessCPF = value; }
            }

            public int PessProfID
            {
                get { return this.pessProfID; }
                set { this.pessProfID = value; }
            }

            public byte PessSexID
            {
                get { return this.pessSexID; }
                set { this.pessSexID = value; }
            }

            public DateTime PessNascDt
            {
                get { return this.pessNascDt; }
                set { this.pessNascDt = value; }
            }

            public byte PessSttID
            {
                get { return this.pessSttID; }
                set { this.pessSttID = value; }
            }

            public void PessInsert() {
                dsPessTableAdapters.SPPessSelectTableAdapter ta = new CadastroLib.dsPessTableAdapters.SPPessSelectTableAdapter();
                ta.Connection.Open();
                ta.Insert(PessNome,PessCPF,PessProfID,PessSexID,PessNascDt,PessSttID);
                ta.Connection.Close();
            }

            public dsPess.SPPessSelectDataTable PessCarrega() {
                dsPessTableAdapters.SPPessSelectTableAdapter ta = new CadastroLib.dsPessTableAdapters.SPPessSelectTableAdapter();
                return ta.GetData(PessID);
            }

        }
    }

    entao eu instancio a classe, e depois que eu selecionar pelo PessID, eu passo os outros valores para a classe.
    Dessa forma ele validaria todos os valores pelos metodos de cada variavel certo?
    Quais os problemas de se fazer dessa forma?

    bem, nao tenho como testar agora que estou no trampo, mais qdo chegar em casa eu testo o codigo,

    e mais uma duvida, no codigo tem .rows[0], isso seria a 1 linha, se tivesse mais linhas iria pegar seus valores atraves do .rows[1], .rows[2] . rowsNo.....

    seria dessa forma?


    obrigado
    abs
    quarta-feira, 2 de maio de 2007 21:39
  • oi !

     

    A forma de resgatar as linhas que você citou está correta.

     

    Quanto ao pessID, eu apenas não conhecia o resto do código.

     

    Mas eu prefiro fazer assim : http://www.microsoft.com/brasil/msdn/tecnologias/adonet/camadaDados.mspx

     

    []'s

     

    quinta-feira, 3 de maio de 2007 02:17
  • obrigado Dennis
    da forma que vc me passou funcionou, porem, eu queria de uma outra forma...

    o codigo da classe Pess
            public dsPess.SPPessSelectDataTable PessCarrega() {
                dsPessTableAdapters.SPPessSelectTableAdapter ta = new CadastroLib.dsPessTableAdapters.SPPessSelectTableAdapter();
                return ta.GetData(PessID);
            }

    o codigo na pagina aspx

        protected void cmdCarregar_Click(object sender, EventArgs e)
        {
            CadastroLib.Pess Pessoa = new CadastroLib.Pess();
            Pessoa.PessID = Convert.ToInt32(txtPessID.Text);
            Pessoa.PessCarrega();
            txtPessCPF.Text = Convert.ToString(Pessoa.PessCarrega().Rows[0]["PessCPF"].ToString());
        }

    existe um meio de eu passar direto para os valores das variaveis da classe?
    ao invez de eu ter que fazer o
    Convert.ToString(Pessoa.PessCarrega().Rows[0]["PessCPF"].ToString());
    na pagina aspx, tem como fazer isso na Classe Pess diretamente?

    tentei fazer, porem nao consegui, me retornou apenas erros Sad

    se puder me ajudar nisso

    obrigado
    abs
    quinta-feira, 3 de maio de 2007 19:37
  •  

    Oi !

     

    Code Snippet
           public string PessCarrega() {
                dsPessTableAdapters.SPPessSelectTableAdapter ta = new CadastroLib.dsPessTableAdapters.SPPessSelectTableAdapter();

                return ta.GetData(PessID).Rows[0]["PessCPF"].ToString();
            }

     

     

    Code Snippet

     

        protected void cmdCarregar_Click(object sender, EventArgs e)
        {
            CadastroLib.Pess Pessoa = new CadastroLib.Pess();
            Pessoa.PessID = Convert.ToInt32(txtPessID.Text);
            txtPessCPF.Text = Pessoa.PessCarrega();
        }

     

    []'s

     

     


    quinta-feira, 3 de maio de 2007 21:49
  • 1)funciona, porem, eu ainda tenho que passar os valores no aspx,
    txtPessCPF.Text = Pessoa.PessCarrega();

    tem como eu fazer isso na classe pessoa?

    esse codigo nao funciona, mais era isso o que eu estava tentando fazer,
    Na classe Pess
            public void PessCarrega() {
                dsPessTableAdapters.SPPessSelectTableAdapter ta = new CadastroLib.dsPessTableAdapters.SPPessSelectTableAdapter();
                PessNome = Convert.ToString(PessCarrega().Rows[0]["PessNome"]);
                PessCPF = Convert.ToString(PessCarrega().Rows[0]["PessCPF"]);
                PessSexoID = Convert.ToString(PessCarrega().Rows[0]["PessSexoID"]);
            }


    No aspx

        protected void cmdCarregar_Click(object sender, EventArgs e)
        {
            CadastroLib.Pess Pessoa = new CadastroLib.Pess();
            Pessoa.PessID = Convert.ToInt32(txtPessID.Text);
            txtPessCPF.Text = PessCPF;

          txtPessNome.Text = PessNome;

          txtPessSexoID.Text = PessSexoID;
        }



    2)No caso de mais de 1 campo, por exemplo
    PessCPF, PessNome, PessSexo
    como eu faria nesses casos para passar os valores da forma que vc fez no exemplo?

    obrigado
    abs
    quinta-feira, 3 de maio de 2007 22:11
  • Oi !

     

    1)

     

    Code Snippet

            public void PessCarrega() {
                dsPessTableAdapters.SPPessSelectTableAdapter ta = new CadastroLib.dsPessTableAdapters.SPPessSelectTableAdapter();

              SPPessSekectTable=ta.getData(PessID);
                PessNome = Convert.ToString(SPPessSekectTable.Rows[0]["PessNome"]);
                PessCPF = Convert.ToString(SPPessSekectTable.Rows[0]["PessCPF"]);
                PessSexoID = Convert.ToString(SPPessSekectTable.Rows[0]["PessSexoID"]);
            }

     

    2) Não faria, voltaria ao exemplo da datatable.

     

    []'s

     

     

     

    quinta-feira, 3 de maio de 2007 22:55
  • 1)bem como disse, vou testar em casa que aqui eu nao consigo
    2) fiz a pergunta mais por curiosidade, prefiro da forma 1, achei mais facil e rapido, assim qdo eu for usar em qualquer lugar, as variaves da classe ja possuem os valores direto e tratados

    obrigado novamente
    qualquer coisa retorno

    falow
    fui......

    quinta-feira, 3 de maio de 2007 23:30
  • Obrigado Dennes
    funcionou da forma que queria

    segue o codigo de como ficou a classe Pess

    Code Snippet

    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace CadastroLib
    {
    public class Pess {
    private int pessID;
    private String pessNome;
    private String pessCPF;
    private int pessProfID;
    private byte pessSexID;
    private DateTime pessNascDt;
    private byte pessSttID;

    public int PessID {
    get { return this.pessID; }
    set {this.pessID = value;}
    }

    public String PessNome
    {
    get { return this.pessNome; }
    set { this.pessNome = value; }
    }

    public String PessCPF
    {
    get { return this.pessCPF; }
    set { this.pessCPF = value; }
    }

    public int PessProfID
    {
    get { return this.pessProfID; }
    set { this.pessProfID = value; }
    }

    public byte PessSexID
    {
    get { return this.pessSexID; }
    set { this.pessSexID = value; }
    }

    public DateTime PessNascDt
    {
    get { return this.pessNascDt; }
    set { this.pessNascDt = value; }
    }

    public byte PessSttID
    {
    get { return this.pessSttID; }
    set { this.pessSttID = value; }
    }

    public void PessInsert()
    {
    dsPessTableAdapters.SPPessSelectTableAdapter ta = new CadastroLib.dsPessTableAdapters.SPPessSelectTableAdapter();
    ta.Connection.Open();
    ta.Insert(PessNome,PessCPF,PessProfID,PessSexID,PessNascDt,PessSttID);
    ta.Connection.Close();
    }

    public void PessCarrega()
    {
    dsPessTableAdapters.SPPessSelectTableAdapter ta = new CadastroLib.dsPessTableAdapters.SPPessSelectTableAdapter();
     
    dsPess.SPPessSelectDataTable SPPesssSelect = ta.GetData(PessID);
    PessCPF = Convert.ToString(SPPesssSelect.Rows[0]["PessCPF"]);
    PessNome = Convert.ToString(SPPesssSelect.Rows[0]["PessNome"]);
    PessProfID = Convert.ToInt32(SPPesssSelect.Rows[0]["PessProfID"]);
    PessSexID = Convert.ToByte(SPPesssSelect.Rows[0]["PessSexID"]);
    PessNascDt = Convert.ToDateTime(SPPesssSelect.Rows[0]["PessNascDt"]);
    PessSttID = Convert.ToByte(SPPesssSelect.Rows[0]["PessSttID"]);

    }

    }
    }


    Codigo da pagina aspx

    Code Snippet

    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;

    namespace CadastroLib { }

    public partial class _Default : System.Web.UI.Page
    {
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void cmdPessCadas_Click(object sender, EventArgs e)
    {
    CadastroLib.Pess Pessoa = new CadastroLib.Pess();
    Pessoa.PessNome = txtPessNome.Text;
    Pessoa.PessCPF = txtPessCPF.Text;
    Pessoa.PessProfID = Convert.ToInt32(ddlPessProfID.SelectedValue);
    Pessoa.PessNascDt = Convert.ToDateTime(txtPessNascDt.Text);
    Pessoa.PessSexID = Convert.ToByte(ddlPessSexID.SelectedValue);
    Pessoa.PessSttID = Convert.ToByte(ddlPessSttID.SelectedValue);
    try
    {
    Pessoa.PessInsert();
    }
    catch { }
    finally { }
    }
    protected void cmdCarregar_Click(object sender, EventArgs e)
    {
    CadastroLib.Pess Pessoa = new CadastroLib.Pess();
    Pessoa.PessID = Convert.ToInt32(txtPessID.Text);
    Pessoa.PessCarrega();
    txtPessNome.Text = Pessoa.PessNome;
    txtPessCPF.Text = Pessoa.PessCPF;
    ddlPessProfID.SelectedValue = Convert.ToString(Pessoa.PessProfID);
    txtPessNascDt.Text = Convert.ToString(Pessoa.PessNascDt);
    ddlPessSexID.SelectedValue = Convert.ToString(Pessoa.PessSexID);
    ddlPessSttID.SelectedValue = Convert.ToString(Pessoa.PessSttID);
    }
    }










    falow
    fui....


    sexta-feira, 4 de maio de 2007 22:20