Dúvida sobre C# e SQL

11 respostas
csharpsql
Gabriel_Correia1

Olá, estou criando um programa no C# que tem o objetivo de fazer o consumo de uma web API Key, usar os dados retornados para popular uma tabela no sql e após gravar os dados no sql, eu iria listar os dados que foram registrados com Dataset mesmo, o ponto que estou mais em dúvida é de como consumir a api e jogar os dados retornados em uma tabela do sql

estou fazendo a consulta com o método post a seguir, acham que seria possível ??

var client = new RestClient(“<a href="https://desk.ms/integracao/API/lchamados/">https://desk.ms/integracao/API/lchamados/</a>”);

var request = new RestRequest(Method.POST);

request.AddHeader(“Postman-Token”, “4f6941e9-08b7-e0aa-c8ad-d3d1a2eb3db3”);

request.AddHeader(“Cache-Control”, “no-cache”);

request.AddHeader(“content-type”, “multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW”);

request.AddParameter(“multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW”, “------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=“chave”\r\n\r\nab85203567fe6a70a914892cec5f934060aadf1e\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=“ver_chamado”\r\n\r\nS\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=“ver_datacri”\r\n\r\nS\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=“ver_assunto”\r\n\r\nS\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=“ver_descr”\r\n\r\nS\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=“ver_solicitacao”\r\n\r\nS\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=“ver_tocorrencia”\r\n\r\nS\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=“ver_cliente”\r\n\r\nS\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=“ver_status”\r\n\r\nS\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=“onde_datacri”\r\n\r\n2018-01-01,2018-02-28\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=“ver_categoria”\r\n\r\nS\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW–”, ParameterType.RequestBody);

IRestResponse response = client.Execute(request);

var content = response.Content; // raw content as string

Console.WriteLine(response.Content);

11 Respostas

R

Não entendi qual é o problema que está tendo.
Você quer inserir os dados no BD e depois mostrar na aplicação?

Você pode fazer a chamada da API e inserir no seu BD com o INSERT e depois visualizar na sua aplicação com um SELECT

Gabriel_Correia1

Exemplo, quando eu faço o consumo da api, posso ver os resultados dessa foma por exemplo

a12daac112730289ac137de30a48123df336d012_1_690x387

porem queria saber se apos isso, eu pudesse gravar todos os dados retornados em uma tabela do sql

R

E para visualizar os dados dessa forma, no seu código eles estão populando alguma variável?

Posta seu código que gera esse console com as informações

Se sim, não tem segredo, só criar uma query SQL que faça a inserção.

Gabriel_Correia1

o que gera aquele console é o codigo que eu acabei de mostrar aqui acima, gerei ele usando o postman,… creio que os dados retornados, sejam armazenados nos campos que vou deixar em negrito

var client = new RestClient(“<a href="https://desk.ms/integracao/API/lchamados/%E2%80%9D">https://desk.ms/integracao/API/lchamados/”</a>);

var request = new RestRequest(Method.POST);

request.AddHeader(“Postman-Token”, “4f6941e9-08b7-e0aa-c8ad-d3d1a2eb3db3”);

request.AddHeader(“Cache-Control”, “no-cache”);

request.AddHeader(“content-type”, “multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW”);

request.AddParameter(“multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW”, “------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=“chave”\r\n\r\nab85203567fe6a70a914892cec5f934060aadf1e\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=“<strong>ver_chamado</strong>”\r\n\r\nS\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=“<strong>ver_datacri</strong>”\r\n\r\nS\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=“<strong>ver_assunto</strong>”\r\n\r\nS\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=“<strong>ver_descr</strong>”\r\n\r\nS\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=“<strong>ver_solicitacao</strong>”\r\n\r\nS\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=“<strong>ver_tocorrencia</strong>”\r\n\r\nS\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=“<strong>ver_cliente</strong>”\r\n\r\nS\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=“<strong>ver_status</strong>”\r\n\r\nS\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=“onde_datacri”\r\n\r\n2018-01-01,2018-02-28\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=“<strong>ver_categoria</strong>”\r\n\r\nS\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW–”, ParameterType.RequestBody);

IRestResponse response = client.Execute(request);

var content = response.Content; // raw content as string

Console.WriteLine(response.Content);
R
var client = new RestClient(https://desk.ms/integracao/API/lchamados/);
var request = new RestRequest(Method.POST);
request.AddHeader(Postman-Token, 4f6941e9-08b7-e0aa-c8ad-d3d1a2eb3db3);
request.AddHeader(Cache-Control, no-cache);
request.AddHeader(content-type, multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW);
request.AddParameter(multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW, ------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=chave\r\n\r\nab85203567fe6a70a914892cec5f934060aadf1e\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=ver_chamado\r\n\r\nS\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=ver_datacri\r\n\r\nS\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=ver_assunto\r\n\r\nS\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=ver_descr\r\n\r\nS\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=ver_solicitacao\r\n\r\nS\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=ver_tocorrencia\r\n\r\nS\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=ver_cliente\r\n\r\nS\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=ver_status\r\n\r\nS\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=onde_datacri\r\n\r\n2018-01-01,2018-02-28\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=ver_categoria\r\n\r\nS\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW–”, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
var content = response.Content; // raw content as string
Console.WriteLine(response.Content);
R

No print tem while, então eu não consegui entender se as variáveis trazem toda a informação, ou se você dar o while para buscar várias vezes, mas você pode fazer da mesma forma, pegando só o que vem dentro dessas variáveis e passando como parâmetro em um INSERT de SQL.

Gabriel_Correia1

sim essa parte mesmo, ela que faz a consulta na base onde estao os dados, e em request.AddParameter é onde estou requisitando para visualizar todos os campos
o campo chave é para ter acesso a base deles
o campo que começa com “onde_xxx” é um filtro de data, e os campos “ver_xxx” sao os campos que sao listados no console, o que eu queria fazer é jogar os dados que foram trazidos e registra-los em uma tabela do sql

Gabriel_Correia1

com eu disse, o codigo foi gerado pelo postman, um programa para testar api, mas pelo que entendi, ele faz a requisição de dados em request.AddParameter e armazena todos os dados retornados em response.Content, mas aquele while ali é bobagem, nao tem importância nenhuma

R

Certo, se ele retorna os dados, você tem que entender como ele faz isso e buscar uma maneira de separar esses dados da forma que se tornem “utilizáveis” pra você, após isso, você vai conseguir passar os mesmo para uma instrução.

Gabriel_Correia1

nesse caso eu estou requisitando varios de uma vez, mas posso requisitar apenas um, por exemplo, estou requisitando somente ver chamado, entao podemos entender que ele grava os dados de “ver_chamado” em response.content? e ai como eu usaria response.content pra jogar os dados que foram armazenados nele, em uma coluna do sql

request.AddParameter(“multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW”, “------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=“chave”\r\n\r\nab85203567fe6a70a914892cec5f934060aadf1e\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=“ver_chamado”\r\n\r\nS\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=“onde_datacri”\r\n\r\n2014-09-01,2018-09-30\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW–”, ParameterType.RequestBody);

R

Não, você requisitou apenas o ver_chamado, mas irá trazer vários chamados.

Dá forma que você quer, você precisaria de todos os dados, mas de apenas um chamado, entende?

Por exemplo: chamado1, datacri1, verassunto1 etc…

Dessa forma você poderia passar pro insert sem problemas.

Mas pelo que eu entendi o seu response.Content retorna uma String só com todos os seus dados.

Entenda melhor como funciona, se for dessa maneira, ai você vai ter que ter alguma forma de separar e consumir os dados.

Criado 5 de março de 2018
Ultima resposta 5 de mar. de 2018
Respostas 11
Participantes 2