Вы находитесь на странице: 1из 27

15/01/2018 Criando um WebService para controle de Clientes utilizando C#

DESENVOLVIMENTO ▼ FRONT-END ▼ BANCO DE DADOS LOGIN

Pesquisar

Publicidade
Desenvolvimento - Web Services 
Criando um WebService para
controle de Clientes utilizando C#
O objetivo deste artigo é desenvolver um sistema de cadastro de
clientes acessível através de um WebService, o qual poderá ser
utilizado por outros sites que consumirem o WebService,
possibilitando a inclusão, alteração, exclusão, consulta e
autenticação de clientes pessoa física e pessoa jurídica.

por Jones Avelino

35 35 0 22

O objetivo deste artigo é desenvolver um sistema de cadastro


de clientes acessível através de um WebService, o qual poderá
ser utilizado por outros sites que consumirem o WebService,
possibilitando a inclusão, alteração, exclusão, consulta e
autenticação de clientes pessoa física e pessoa jurídica.
Nosso webservice deverá permitir o cadastro de pessoas física
e jurídica, conforme diagrama de classes abaixo:

http://www.linhadecodigo.com.br/artigo/663/criando-um-webservice-para-controle-de-clientes-utilizando-csharp.aspx 1/27
15/01/2018 Criando um WebService para controle de Clientes utilizando C#

Conforme o Diagrama de Classes do nosso Projeto, vamos criar


a seguinte Tabela em nosso Banco de Dados de Clientes.
Utilizaremos o Microsoft Access:

http://www.linhadecodigo.com.br/artigo/663/criando-um-webservice-para-controle-de-clientes-utilizando-csharp.aspx 2/27
15/01/2018 Criando um WebService para controle de Clientes utilizando C#

É importante lembrar que o fato de termos mapeado o nosso


diagrama de classes em apenas uma tabela, é apenas uma
decisão de projeto, e teríamos pelo menos mais 2 formas
possíveis de fazer este mapeamento, criando uma tabela para
cada classe ou criando duas tabelas (pessoa física e pessoa
jurídica) e repetindo os atributos de pessoa em cada uma delas.

Agora é hora de criarmos os nossos arquivos de classes,


responsáveis basicamente por acessar o nosso banco de dados
de clientes e efetuar as operações propostas pelo nosso projeto
(inclusão, alteração, exclusão, consulta e autenticação de
clientes). Para tanto, abra o seu Visual Studio, crie um novo
Projeto e adicione 3 arquivos de classes: clsPessoa,
clsPessoaFis e clsPessoaJur:

http://www.linhadecodigo.com.br/artigo/663/criando-um-webservice-para-controle-de-clientes-utilizando-csharp.aspx 3/27
15/01/2018 Criando um WebService para controle de Clientes utilizando C#

A nossa classe clsPessoa, será abstrata, ou seja, ela não


poderá ser instanciada diretamente. Vamos escrever o código
para criação de nossos atributos e métodos conforme o nosso
diagrama de classes:

public abstract class clsPessoa


{
//Definindo propriedades
private long _cod;
private string _nome;
private string _email;
private string _telefone;
private string _login;
private string _senha;

public long cod

http://www.linhadecodigo.com.br/artigo/663/criando-um-webservice-para-controle-de-clientes-utilizando-csharp.aspx 4/27
15/01/2018 Criando um WebService para controle de Clientes utilizando C#

{
get{return _cod;}
set{_cod = value;}
}

public string nome


{
get{return _nome;}
set{_nome = value;}
}

public string email


{
get{return _email;}
set{_email = value;}
}

public string telefone


{
get{return _telefone;}
set{_telefone = value;}
}

public string login


{
get{return _login;}
set{_login = value;}
}

public string senha


{
get{return _senha;}
set{_senha = value;}
}
}

http://www.linhadecodigo.com.br/artigo/663/criando-um-webservice-para-controle-de-clientes-utilizando-csharp.aspx 5/27
15/01/2018 Criando um WebService para controle de Clientes utilizando C#

Note que até agora, criamos a nossa classe abstrata e os


nossos atributos (propriedades). Uma classe é abstrata se ela
possui ao menos um método abstrato e tais métodos devem ser
implementados pelas as subclasses que a herdarem. Vamos
adicionar os nossos métodos em nossa classe abstrata:

public clsPessoa()
{
}

public abstract void incluir();

public abstract void alterar();

public abstract DataSet obter();

public virtual void excluir()


{
string strConn =
System.Configuration.ConfigurationSettings.AppSettings.Get("co

StringBuilder strSql = new StringBuilder("");


strSql.Append("DELETE FROM clientes ");
strSql.Append("WHERE cod = @cod;");

OleDbConnection conn = new OleDbConnection(strConn);


OleDbParameter param = new OleDbParameter("@cod", this
OleDbCommand cmd = new OleDbCommand();
cmd.Parameters.Add(param);

try
{
conn.Open();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = strSql.ToString();

http://www.linhadecodigo.com.br/artigo/663/criando-um-webservice-para-controle-de-clientes-utilizando-csharp.aspx 6/27
15/01/2018 Criando um WebService para controle de Clientes utilizando C#

cmd.ExecuteNonQuery();
}
catch (OleDbException ex)
{
throw new Exception("ERRO BANCO DE DADOS: " + ex.M
}
catch(Exception ex)
{
throw new Exception("ERRO RUNTIME: " + ex.Message.To
}
finally
{
cmd.Dispose();
conn.Close();
conn.Dispose();
}

public virtual long autenticar()


{
string strConn =
System.Configuration.ConfigurationSettings.AppSettings.Get("co

StringBuilder strSql = new StringBuilder("");


strSql.Append("SELECT cod ");
strSql.Append("FROM clientes WHERE login = @login AND s

OleDbConnection conn = new OleDbConnection(strConn);


OleDbParameter[] param = new OleDbParameter[2];
param[0] = new OleDbParameter("@login", this.login);
param[1] = new OleDbParameter("@senha", this.senha);
OleDbCommand cmd = new OleDbCommand();
cmd.Parameters.Add(param[0]);
cmd.Parameters.Add(param[1]);
long ret = 0;

http://www.linhadecodigo.com.br/artigo/663/criando-um-webservice-para-controle-de-clientes-utilizando-csharp.aspx 7/27
15/01/2018 Criando um WebService para controle de Clientes utilizando C#

try
{
conn.Open();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = strSql.ToString();
ret = Convert.ToInt64(cmd.ExecuteScalar());
}
catch (OleDbException ex)
{
throw new Exception("ERRO BANCO DE DADOS: " + ex.M
}
catch(Exception ex)
{
throw new Exception("ERRO RUNTIME: " + ex.Message.To
}
finally
{
cmd.Dispose();
conn.Close();
conn.Dispose();
}
return ret;
}
Veja que utilizamos o modificador abstract para criar os nosso
métodos abstratos, os quais serão implementados somente nas
classes que herdarem esta classe (no nosso projeto, as classes
clsPessoaFis e clsPessoaJur). Temos dois métodos (excluir e
autenticar) que fazem a mesma coisa tanto para pessoa física
quanto para pessoa jurídica, portanto, é necessário implementá-
los apenas na superclasse e herdá-los em nossas subclasses.
Para isso, utilizamos o modificador virtual. Agora, temos que
implementar as nossas duas subclasses (clsPessoaFis e
clsPessoaJur) herdando de nossa classe abstrata clsPessoa.
Primeiro, vamos implementar os atributos da nossa classe
clsPessoaFis conforme nosso diagrama de classes:

http://www.linhadecodigo.com.br/artigo/663/criando-um-webservice-para-controle-de-clientes-utilizando-csharp.aspx 8/27
15/01/2018 Criando um WebService para controle de Clientes utilizando C#

public class clsPessoaFis : clsPessoa


{
private string _cpf;
private DateTime _dtnasc;
private string _rg;

public string cpf


{
get{return _cpf;}
set{_cpf = value;}
}

public DateTime dtnasc


{
get{return _dtnasc;}
set{_dtnasc = value;}
}

public string rg
{
get{return _rg;}
set{_rg = value;}
}

public clsPessoaFis()
{
this.cod = 0;
this.email = "";
this.telefone = "";
this.login = "";
this.senha = "";
this.cpf = "";
this.rg = "";
}

public clsPessoaFis(long cod, string nome, string email, string t

http://www.linhadecodigo.com.br/artigo/663/criando-um-webservice-para-controle-de-clientes-utilizando-csharp.aspx 9/27
15/01/2018 Criando um WebService para controle de Clientes utilizando C#

string senha, string cpf, DateTime dtnasc, string rg


{
this.cod = cod;
this.nome = nome;
this.email = email;
this.telefone = telefone;
this.login = login;
this.senha = senha;
this.cpf = cpf;
this.dtnasc = dtnasc;
this.rg = rg;
}
}
Criamos uma classe concreta (clsPessoaFis) herdando de
nossa classe abstrata (clsPessoa) através do ":" na definição
da classe. Além disso, utilizamos o conceito de sobreposição
de métodos, criando 2 construtores para a nossa classe. Um
deles sem nenhum parâmetro e o outro com todos os dados da
pessoa física para inicialização do objeto.

Note que não precisamos definir os atributos cod, nome, email,


telefone, login, e senha, pois eles são herdados de nossa
superclasse.

Vamos agora implementar os nossos métodos para a nossa


classe:

public override void incluir()


{
string strConn =
System.Configuration.ConfigurationSettings.AppSettings.Get("co

StringBuilder strSql = new StringBuilder("");


strSql.Append("INSERT INTO clientes (nome, email, telefone
strSql.Append("VALUES(@nome, @email, @telefone, @login

OleDbConnection conn = new OleDbConnection(strConn);

http://www.linhadecodigo.com.br/artigo/663/criando-um-webservice-para-controle-de-clientes-utilizando-csharp.aspx 10/27
15/01/2018 Criando um WebService para controle de Clientes utilizando C#

OleDbParameter[] param = new OleDbParameter[8];


param[0] = new OleDbParameter("@nome", this.nome);
param[1] = new OleDbParameter("@email", this.email);
param[2] = new OleDbParameter("@telefone", this.telefone);
param[3] = new OleDbParameter("@login", this.login);
param[4] = new OleDbParameter("@senha", this.senha);
param[5] = new OleDbParameter("@cpf", this.cpf);
param[6] = new OleDbParameter("@dtnasc", this.dtnasc);
param[7] = new OleDbParameter("@rg", this.rg);
param[6].OleDbType = OleDbType.Date;
OleDbCommand cmd = new OleDbCommand();
for(byte i = 0;i < param.Length;i++)
{
cmd.Parameters.Add(param[i]);
}

try
{
conn.Open();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = strSql.ToString();
cmd.ExecuteNonQuery();
}
catch (OleDbException ex)
{
throw new Exception("ERRO BANCO DE DADOS: " + ex.M
}
catch(Exception ex)
{
throw new Exception("ERRO RUNTIME: " + ex.Message.To
}
finally
{
conn.Close();
conn.Dispose();

http://www.linhadecodigo.com.br/artigo/663/criando-um-webservice-para-controle-de-clientes-utilizando-csharp.aspx 11/27
15/01/2018 Criando um WebService para controle de Clientes utilizando C#

cmd.Dispose();
}
}

public override void alterar()


{
string connString =
System.Configuration.ConfigurationSettings.AppSettings.Get("co

StringBuilder strSql = new StringBuilder("");


strSql.Append("UPDATE clientes SET ");
strSql.Append(" nome = @nome, ");
strSql.Append(" email = @email, ");
strSql.Append(" telefone = @telefone, ");
strSql.Append(" login = @login, ");
strSql.Append(" senha = @senha, ");
strSql.Append(" cpf = @cpf, ");
strSql.Append(" dtnasc = @dtnasc, ");
strSql.Append(" rg = @rg ");
strSql.Append("WHERE cod = @cod;");

OleDbConnection conn = new OleDbConnection(connString);


OleDbParameter[] param = new OleDbParameter[9];
param[0] = new OleDbParameter("@nome", this.nome);
param[1] = new OleDbParameter("@email", this.email);
param[2] = new OleDbParameter("@telefone", this.telefone);
param[3] = new OleDbParameter("@login", this.login);
param[4] = new OleDbParameter("@senha", this.senha);
param[5] = new OleDbParameter("@cpf", this.cpf);
param[6] = new OleDbParameter("@dtnasc", this.dtnasc);
param[7] = new OleDbParameter("@rg", this.rg);
param[8] = new OleDbParameter("@cod", this.cod);
param[6].OleDbType = OleDbType.Date;
OleDbCommand cmd = new OleDbCommand();
for(byte i = 0;i < param.Length;i++)
{

http://www.linhadecodigo.com.br/artigo/663/criando-um-webservice-para-controle-de-clientes-utilizando-csharp.aspx 12/27
15/01/2018 Criando um WebService para controle de Clientes utilizando C#

cmd.Parameters.Add(param[i]);
}

try
{
conn.Open();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = strSql.ToString();
cmd.ExecuteNonQuery();
}
catch (OleDbException ex)
{
throw new Exception("ERRO BANCO DE DADOS: " + ex.M
}
catch(Exception ex)
{
throw new Exception("ERRO RUNTIME: " + ex.Message.To
}
finally
{
conn.Close();
conn.Dispose();
cmd.Dispose();
}
}

public override DataSet obter()


{
string connString =
System.Configuration.ConfigurationSettings.AppSettings.Get("co

StringBuilder strSql = new StringBuilder("");


strSql.Append("SELECT cod, nome, email, telefone, login, se
strSql.Append("FROM clientes WHERE cod = @cod");

http://www.linhadecodigo.com.br/artigo/663/criando-um-webservice-para-controle-de-clientes-utilizando-csharp.aspx 13/27
15/01/2018 Criando um WebService para controle de Clientes utilizando C#

OleDbConnection conn = new OleDbConnection(connString);


OleDbParameter param = new OleDbParameter("@cod", this
OleDbCommand cmd = new OleDbCommand();
cmd.Parameters.Add(param);

try
{
conn.Open();
cmd.Connection = conn;
cmd.CommandText = strSql.ToString();
cmd.CommandType = CommandType.Text;
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
catch (OleDbException ex)
{
throw new Exception("ERRO BANCO DE DADOS: " + ex.M
}
catch(Exception ex)
{
throw new Exception("ERRO RUNTIME: " + ex.Message.To
}
finally
{
conn.Close();
conn.Dispose();
cmd.Dispose();
}
}
A implementação para a nossa classe clsPessoaJur é similar a
implementação que fizemos acima. Portanto, colocarei o código
completo da classe abaixo:
public class clsPessoaJur : clsPessoa
{

http://www.linhadecodigo.com.br/artigo/663/criando-um-webservice-para-controle-de-clientes-utilizando-csharp.aspx 14/27
15/01/2018 Criando um WebService para controle de Clientes utilizando C#

private string _cnpj;


private string _razao_social;
private string _insc_estatual;

public string cnpj


{
get{return _cnpj;}
set{_cnpj = value;}
}

public string razao_social


{
get{return _razao_social;}
set{_razao_social = value;}
}

public string insc_estatual


{
get{return _insc_estatual;}
set{_insc_estatual = value;}
}

public clsPessoaJur()
{
this.cod = 0;
this.email = "";
this.telefone = "";
this.login = "";
this.senha = "";
this.cnpj = "";
this.razao_social = "";
this.insc_estatual = "";
}

public clsPessoaJur(long cod, string nome, string email, string t


string senha, string cnpj, string razao_social, string

http://www.linhadecodigo.com.br/artigo/663/criando-um-webservice-para-controle-de-clientes-utilizando-csharp.aspx 15/27
15/01/2018 Criando um WebService para controle de Clientes utilizando C#

{
this.cod = cod;
this.nome = nome;
this.email = email;
this.telefone = telefone;
this.login = login;
this.senha = senha;
this.cnpj = cnpj;
this.razao_social = razao_social;
this.insc_estatual = insc_estatual;
}

public override void incluir()


{
string strConn =
System.Configuration.ConfigurationSettings.AppSettings.Get("co

StringBuilder strSql = new StringBuilder("");


strSql.Append("INSERT INTO clientes (nome, email, telefone
insc_estatual)");
strSql.Append("VALUES(@nome, @email, @telefone, @login
@insc_estatual)");

OleDbConnection conn = new OleDbConnection(strConn);


OleDbParameter[] param = new OleDbParameter[8];
param[0] = new OleDbParameter("@nome", this.nome);
param[1] = new OleDbParameter("@email", this.email);
param[2] = new OleDbParameter("@telefone", this.telefone);
param[3] = new OleDbParameter("@login", this.login);
param[4] = new OleDbParameter("@senha", this.senha);
param[5] = new OleDbParameter("@cnpj", this.cnpj);
param[6] = new OleDbParameter("@razao_social", this.razao
param[7] = new OleDbParameter("@insc_estatual", this.insc_
OleDbCommand cmd = new OleDbCommand();
for(byte i = 0;i < param.Length;i++)
{

http://www.linhadecodigo.com.br/artigo/663/criando-um-webservice-para-controle-de-clientes-utilizando-csharp.aspx 16/27
15/01/2018 Criando um WebService para controle de Clientes utilizando C#

cmd.Parameters.Add(param[i]);
}

try
{
conn.Open();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = strSql.ToString();
cmd.ExecuteNonQuery();
}
catch (OleDbException ex)
{
throw new Exception("ERRO BANCO DE DADOS: " + ex.M
}
catch(Exception ex)
{
throw new Exception("ERRO RUNTIME: " + ex.Message.To
}
finally
{
conn.Close();
conn.Dispose();
cmd.Dispose();
}
}

public override void alterar()


{
string connString =
System.Configuration.ConfigurationSettings.AppSettings.Get("co

StringBuilder strSql = new StringBuilder("");


strSql.Append("UPDATE clientes SET ");
strSql.Append(" nome = @nome, ");
strSql.Append(" email = @email, ");

http://www.linhadecodigo.com.br/artigo/663/criando-um-webservice-para-controle-de-clientes-utilizando-csharp.aspx 17/27
15/01/2018 Criando um WebService para controle de Clientes utilizando C#

strSql.Append(" telefone = @telefone, ");


strSql.Append(" login = @login, ");
strSql.Append(" senha = @senha, ");
strSql.Append(" cnpj = @cnpj, ");
strSql.Append(" razao_social = @razao_social, ");
strSql.Append(" insc_estatual = @insc_estatual ");
strSql.Append("WHERE cod = @cod;");

OleDbConnection conn = new OleDbConnection(connString);


OleDbParameter[] param = new OleDbParameter[9];
param[0] = new OleDbParameter("@nome", this.nome);
param[1] = new OleDbParameter("@email", this.email);
param[2] = new OleDbParameter("@telefone", this.telefone);
param[3] = new OleDbParameter("@login", this.login);
param[4] = new OleDbParameter("@senha", this.senha);
param[5] = new OleDbParameter("@cnpj", this.cnpj);
param[6] = new OleDbParameter("@razao_social", this.razao
param[7] = new OleDbParameter("@insc_estatual", this.insc_
param[8] = new OleDbParameter("@cod", this.cod);
OleDbCommand cmd = new OleDbCommand();
for(byte i = 0;i < param.Length;i++)
{
cmd.Parameters.Add(param[i]);
}

try
{
conn.Open();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = strSql.ToString();
cmd.ExecuteNonQuery();
}
catch (OleDbException ex)
{
throw new Exception("ERRO BANCO DE DADOS: " + ex.M

http://www.linhadecodigo.com.br/artigo/663/criando-um-webservice-para-controle-de-clientes-utilizando-csharp.aspx 18/27
15/01/2018 Criando um WebService para controle de Clientes utilizando C#

}
catch(Exception ex)
{
throw new Exception("ERRO RUNTIME: " + ex.Message.To
}
finally
{
conn.Close();
conn.Dispose();
cmd.Dispose();
}
}

public override DataSet obter()


{
string connString =
System.Configuration.ConfigurationSettings.AppSettings.Get("co

StringBuilder strSql = new StringBuilder("");


strSql.Append("SELECT cod, nome, email, telefone, login, se
strSql.Append("FROM clientes WHERE cod = @cod");
OleDbConnection conn = new OleDbConnection(connString);
OleDbParameter param = new OleDbParameter("@cod", this
OleDbCommand cmd = new OleDbCommand();
cmd.Parameters.Add(param);
try
{
conn.Open();
cmd.Connection = conn;
cmd.CommandText = strSql.ToString();
cmd.CommandType = CommandType.Text;
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}

http://www.linhadecodigo.com.br/artigo/663/criando-um-webservice-para-controle-de-clientes-utilizando-csharp.aspx 19/27
15/01/2018 Criando um WebService para controle de Clientes utilizando C#

catch (OleDbException ex)


{
throw new Exception("ERRO BANCO DE DADOS: " + ex.M
}
catch(Exception ex)
{
throw new Exception("ERRO RUNTIME: " + ex.Message.To
}
finally
{
conn.Close();
conn.Dispose();
cmd.Dispose();
}
}
}
Agora que já implementamos as nossas classes de acesso ao
banco de dados, vamos criar o webservice que vai utilizá-las
para disponibilizar o nosso cadastro de clientes através da
internet.
Adicione um novo item ao projeto (WebService):

http://www.linhadecodigo.com.br/artigo/663/criando-um-webservice-para-controle-de-clientes-utilizando-csharp.aspx 20/27
15/01/2018 Criando um WebService para controle de Clientes utilizando C#

Após criarmos o arquivo, iremos implementar 8 métodos de


acesso público conforme descrito abaixo:

incluirPF: inclui uma pessoa física.


incluirPJ: inclui uma pessoa jurídica.
alterarPF: altera uma pessoa física cadastrada.
alterarPJ: altera uma pessoa jurídica cadastrada.
obterPF: obtém um DataSet contendo os dados de uma pessoa
física.
obterPJ: obtém um DataSet contendo os dados de uma pessoa
jurídica.
excluir: exclui uma pessoa (física ou jurídica) cadastrada.
autenticar: verifica se uma pessoa (física ou jurídica) está
cadastrada a partir do seu login e senha cadastrados e retorna o
seu código.

http://www.linhadecodigo.com.br/artigo/663/criando-um-webservice-para-controle-de-clientes-utilizando-csharp.aspx 21/27
15/01/2018 Criando um WebService para controle de Clientes utilizando C#

public class WsClientes : System.Web.Services.WebService


{
[WebMethod]
public void incluirPF(string nome, string email, string telefone, s
string cpf, DateTime dtnasc, string rg)
{
clsPessoaFis objPessoa = new clsPessoaFis();
objPessoa.nome = nome;
objPessoa.email = email;
objPessoa.telefone = telefone;
objPessoa.login = login;
objPessoa.senha = senha;
objPessoa.cpf = cpf;
objPessoa.dtnasc = dtnasc;
objPessoa.rg = rg;
objPessoa.incluir();
}

[WebMethod]
public void incluirPJ(string nome, string email, string telefone, s
string cnpj, string razao_social, string insc_estadu
{
clsPessoaJur objPessoa = new clsPessoaJur();
objPessoa.nome = nome;
objPessoa.email = email;
objPessoa.telefone = telefone;
objPessoa.login = login;
objPessoa.senha = senha;
objPessoa.cnpj = cnpj;
objPessoa.razao_social = razao_social;
objPessoa.insc_estatual = insc_estadual;
objPessoa.incluir();
}

[WebMethod]
public void alterarPF(long cod, string nome, string email, string

http://www.linhadecodigo.com.br/artigo/663/criando-um-webservice-para-controle-de-clientes-utilizando-csharp.aspx 22/27
15/01/2018 Criando um WebService para controle de Clientes utilizando C#

string senha, string cpf, DateTime dtnasc, string rg)


{
clsPessoaFis objPessoa = new clsPessoaFis();
objPessoa.cod = cod;
objPessoa.nome = nome;
objPessoa.email = email;
objPessoa.telefone = telefone;
objPessoa.login = login;
objPessoa.senha = senha;
objPessoa.cpf = cpf;
objPessoa.dtnasc = dtnasc;
objPessoa.rg = rg;
objPessoa.alterar();
}

[WebMethod]
public void alterarPJ(long cod, string nome, string email, string t
string senha, string cnpj, string razao_social, strin
{
clsPessoaJur objPessoa = new clsPessoaJur();
objPessoa.cod = cod;
objPessoa.nome = nome;
objPessoa.email = email;
objPessoa.telefone = telefone;
objPessoa.login = login;
objPessoa.senha = senha;
objPessoa.cnpj = cnpj;
objPessoa.razao_social = razao_social;
objPessoa.insc_estatual = insc_estadual;
objPessoa.alterar();
}

[WebMethod]
public DataSet obterPF(long cod)
{
clsPessoa objPessoa = new clsPessoaFis();

http://www.linhadecodigo.com.br/artigo/663/criando-um-webservice-para-controle-de-clientes-utilizando-csharp.aspx 23/27
15/01/2018 Criando um WebService para controle de Clientes utilizando C#

objPessoa.cod = cod;
return objPessoa.obter();
}

[WebMethod]
public DataSet obterPJ(long cod)
{
clsPessoa objPessoa = new clsPessoaJur();
objPessoa.cod = cod;
return objPessoa.obter();
}

[WebMethod]
public void excluir(long cod)
{
clsPessoa objPessoa = new clsPessoaFis();
objPessoa.cod = cod;
objPessoa.excluir();
}

[WebMethod]
public long autenticar(string login, string senha)
{
clsPessoa objPessoa = new clsPessoaFis();
objPessoa.login = login;
objPessoa.senha = senha;
long cod = objPessoa.autenticar();
return cod;
}
}
Já estamos quase no final do nosso projeto, mas antes gostaria
de destacar o DataSet de retorno do método obter. A classe
DataSet é a mais importante da biblioteca de acesso a dados
ADO.NET. Por esta tecnologia ser totalmente baseada em XML
(o qual a difere totalmente da sua antecessora, o ADO) ela
retorna um documento XML a partir de um comando select (por

http://www.linhadecodigo.com.br/artigo/663/criando-um-webservice-para-controle-de-clientes-utilizando-csharp.aspx 24/27
15/01/2018 Criando um WebService para controle de Clientes utilizando C#

exemplo) em um banco de dados, sem a necessidade de se


criar um documento XML de retorno "na mão". Esta é apenas
uma das várias inovações que a tecnologia ADO.NET trouxe
para os desenvolvedore .NET.

É importante lembrar que em todos as implementações acima


(classes e webservice) temos que adicionar alguns
namespaces utilizados:

using System.Data;
using System.Data.OleDb;
using System.Text;
Agora é só ver e testar o resultado do nosso webservice,
acessando o mesmo através do browser:

Testando o método obterPF:

http://www.linhadecodigo.com.br/artigo/663/criando-um-webservice-para-controle-de-clientes-utilizando-csharp.aspx 25/27
15/01/2018 Criando um WebService para controle de Clientes utilizando C#

Ufa! Chegamos ao fim da construção do nosso webservice. Este


exemplo nos ajudou a demonstrar na prática alguns conceitos
de OO que aproximam as nossas soluções ao mundo real.

No próximo artigo, estaremos criando uma página ASP.NET que


"consumirá" o nosso webservice, ou seja, utilizará os métodos
públicos disponíveis para manipulação do nosso cadastro de
clientes na web.

Clique aqui para baixar o código fonte completo do nosso


projeto.

Um abraço,

Jones

http://www.linhadecodigo.com.br/artigo/663/criando-um-webservice-para-controle-de-clientes-utilizando-csharp.aspx 26/27
15/01/2018 Criando um WebService para controle de Clientes utilizando C#

Jones Avelino - Bacharel em Sistemas de


Informação e com especialização em Des
envolvimento de Sistemas para Internet, tr
abalha como Analista / Desenvolvedor de
sistemas Web sendo especialista em ASP, ASP.NET e S
QL Server.

35 35 0 22

Leia também
Verificando disponibilidade de um serviço WCF ou WebService
C#

Criando um WebService com ASP.NET Razor e WebMatrix


Web Services

Construindo um List Suggest com ASP.NET Web Services e JQ


uery
ASP. NET

Consumindo serviços REST com HttpClient


Web Services

REST e o WSDL
Web Services

http://www.linhadecodigo.com.br/artigo/663/criando-um-webservice-para-controle-de-clientes-utilizando-csharp.aspx 27/27

Вам также может понравиться