Ir para conteúdo
Fórum Script Brasil
  • 0

Web Service


Guest Visitante

Pergunta

Guest Visitante

E ai galera, queria saber se você's cnhecem um jeito de conectar asp.net com um form c# atraves de webService ?

você podem me indicar alguma materia ou algo assim?

vlw

Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0
Guest Visitante

NA verdade é por puro conehcimento, eu gostaria de fazer um programa simpels em asp.net, que manda-se informações para um winForm ffeito m c#, só que eu gostaria de fazer atrasves de web services, pois eu gostaria de tenar implementar num futuro proximo um sistema de agendamento de consultas onlien para um dentista, qualquer material sera bem vindo

t+

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Visitante

E ai cara, blza ??

então andei dando uma estudada e testei um programa que busque numa base de dados access atraves de um web service

o web service fficou assim

public class Service : System.Web.Services.WebService
{
    public OleDbConnection Conexao;
    public OleDbCommand Comando;
    public DataSet Ds;
    public OleDbDataAdapter Da;
    public DataTable Dt;

    public Service () {
        Conexao = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\banco de dados\\bd1.mdb");
    }

    [WebMethod]
    public DataSet Instrucao(String Inst)
    {
        Da = new OleDbDataAdapter(Inst, Conexao);
        Ds = new DataSet();
        Dt = new DataTable("id");

        Da.Fill(Ds);

        return Ds;
    }
}
e o do form ficou asim
public partial class Form1 : Form
    {
        Dados.Service dados = new Dados.Service();
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Buscando...");

            DataSet ds = new DataSet();
            ds = dados.Instrucao(Inst.Text);

            MessageBox.Show(ds.Tables["id"].Rows[0]["nome"].ToString());
        }
    }
}
porem no MessageBox ele naop retorna nd, apenas da um erro falando que o indice esta fora do intrvalo, algo assim porem quando eu testo no Browser (com a instrução sql igual) ele me retorna isso
... codigos XML
...
...

- <Table diffgr:id="Table1" msdata:rowOrder="0">
  <id>1</id> 
  <nome>Bruno</nome> 
  <telefone>34541436</telefone> 
  </Table>
- <Table diffgr:id="Table2" msdata:rowOrder="1">
  <id>2</id> 
  <nome>Bete</nome> 
  <telefone>34554252</telefone> 
  </Table>
- <Table diffgr:id="Table3" msdata:rowOrder="2">
  <id>3</id> 
  <nome>Michel</nome> 
  <telefone>34541437</telefone> 
  </Table>
...codigos
...codigos

Ou seja, ele acha, só que no winForm ele não mostra

porque sera?

pode me ajudar cara ?

vlw

Link para o comentário
Compartilhar em outros sites

  • 0

opa,d esculpa, nesta daqui

 MessageBox.Show(ds.Tables["id"].Rows[0]["nome"].ToString());
O nome da tabela é mesmo "id"? Experimente fazer:
MessageBox.Show(ds.Tables[0].Rows[0]["nome"].ToString());

Você realmente cria uma DataTable chamada "id" naquele código, mas *não* a utiliza.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Visitante

Opa blza velho, deu certo ...

agora eu gostaria de saber se tem como eu saber se foi feita alguma modificação no banco de dados, pra então atualizar o formulario,

exemplo: Se eu colocar algum valor no BD pelo asp.net, então o winForm, saber que houve uma atualização no BD e assim pegar denovo os dados, existe jeito de se fazer isso ?

t+, vlw

Link para o comentário
Compartilhar em outros sites

  • 0

Opa blza velho, deu certo ...

:)

agora eu gostaria de saber se tem como eu saber se foi feita alguma modificação no banco de dados, pra então atualizar o formulario,

exemplo: Se eu colocar algum valor no BD pelo asp.net, então o winForm, saber que houve uma atualização no BD e assim pegar denovo os dados, existe jeito de se fazer isso ?

Acho que o mais aconselhável seria o seu WinForm verificar, periodicamente, se existem modificações nos dados, perguntando ao WebService. Qualquer alteração feita no banco através do WebService poderia, por exemplo, alterar um objeto boolean como "Modificado" para True. E quando o WinForm perguntasse ao WebService se houve modificações ele responderia com o valor de "Modificado", além de resetar esse valor para False, a fim de que da próxima vez que haja uma modificação ele possa mudar para True (e para que o WinForm não fique atualizando os dados desnecessariamente).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Visitante

Opa velho, então então, eu decidi dexar esta questao um pouco pra ds xP, porque da dificil aqui

olha, eu tava estruturando melhor o codigo, então criei duas Voids, uma pra enviar o comando SQL, e otro pra pegar o ds,

o de pegar o Dataset ficou assim

void getDS()
        {

            ds = dados.GetDataSet();
            ds.Tables.Add("id");


            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                Lista.Items.Add(ds.Tables[0].Rows[i]["nome"].ToString());
            }
        }
e a da Instruçao ficou
                Lista.Items.Clear();
                MessageBox.Show("Buscando...");

                dados.Instrucao(Inst.Text);

                getDS();
Porem quando ele chama a getDS(), ela retorna um ero assim
Cannot find table 0.
porque disso ? obs: o WebService ficou assim
    [WebMethod]
    public void Instrucao(String Inst)
    {
        Da = new OleDbDataAdapter(Inst, Conexao);
        Da.Fill(Ds);
    }

    [WebMethod]
    public DataSet GetDataSet()
    {
        return Ds;
    }

vlw

Link para o comentário
Compartilhar em outros sites

  • 0
olha, eu tava estruturando melhor o codigo, então criei duas Voids, uma pra enviar o comando SQL, e otro pra pegar o ds,

Você quer dizer "duas rotinas", né? Porque void é o tipo delas.

Qual é a instrução que você está passando? Ela está realmente sendo executada e está retornando dados para uma tabela? E por que você cria uma tabela chamada "id" se não faz nada com ela?

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Visitante

Opa Gray, cara olha só...

eu to passando esta instrução "Select * from pacientes", só que neste ultimo codigo que te passei ele não retorna nd né ?

mais neste ele retorna certinho

 private void button1_Click(object sender, EventArgs e)
        {
                Lista.Items.Clear();
                MessageBox.Show("Buscando...");

                ds = dados.Instrucao(Inst.Text);

                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    Lista.Items.Add(ds.Tables[0].Rows[i]["nome"].ToString());
                }
        }

porque ? sendo que eu só copiei o codigo e colei de uma rotina pra outra ?

vlw t+

Link para o comentário
Compartilhar em outros sites

  • 0

Opa Gray, cara olha só...

eu to passando esta instrução "Select * from pacientes", só que neste ultimo codigo que te passei ele não retorna nd né ?

mais neste ele retorna certinho

 private void button1_Click(object sender, EventArgs e)
        {
                Lista.Items.Clear();
                MessageBox.Show("Buscando...");

                ds = dados.Instrucao(Inst.Text);

                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    Lista.Items.Add(ds.Tables[0].Rows[i]["nome"].ToString());
                }
        }

porque ? sendo que eu só copiei o codigo e colei de uma rotina pra outra ?

Porque é o método "Instrucao" que retorna o DataSet. E não era isso que você estava utilizando no outro procedimento.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...