Ir para conteúdo
Pedro João

Dificuldade de enviar os dados na base de dados local, obtidas atravez do json da WebApi,e visualizada no windows form no c#

Recommended Posts

Boa tarde Pessoal,  sou novato na programação  , estou uma dificuldade de enviar na base de dados local (Sql Server), lembrando que existe um metodo

 private void PopulateallFields() que me permite visualizar alguns dados na textbox, mas os dados são solicitado apartir de um ficheiro json na WebAPi

 

public class BranchMethod
    {
     public List<Branches> GetBranchList(string url, string authtoken, string passkey, out string ReasonPhrase,Guid pkorganization)
     {
         try
         {
             List<Branches> list = new List<Branches>();
             url = "http://" + url + "/webapi";
             HttpClient clientorg = new HttpClient();
             clientorg.BaseAddress = new Uri(url);
             clientorg.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", authtoken);
             clientorg.DefaultRequestHeaders.Add("passkey", passkey);
             string webapi = "WebApi/v1.0/Branches";
             HttpResponseMessage getresponses = clientorg.GetAsync(webapi).Result;
             if (getresponses.IsSuccessStatusCode)
             {
                var branches = JObject.Parse(getresponses.Content.ReadAsStringAsync().Result);
                    if (branches["value"].ToString() != "" && branches["value"] != null)
                 {
                     var organisation = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Branches>>(branches["value"].ToString()).Where(p => p.PkOrganization == pkorganization).ToList();
                     list = organisation;
                 }
             }
             ReasonPhrase = getresponses.ReasonPhrase;
             return list;
         }
         catch (Exception ex)
         {
             throw ex;
         }
     }
    }

Método  de Inserir os valores na textbox atravez das chamadas Web

 private void PopulateallFields()
        {
            try
            {
                TokenMethods objtoken = new TokenMethods();
                LoginMethod objlogin = new LoginMethod();
                CompanyMethod objcmp = new CompanyMethod();
                BranchMethod objbranch = new BranchMethod();
                DeviceTypesMethod objdevicetypes = new DeviceTypesMethod();
                ddlNetlogiaUrl.SelectedItem = Url;
                if (TokenMethods.authtoken != "")
                {
                    string val = "";
                    List<Companies> listcmp = objcmp.GetCompanyList(Url, TokenMethods.authtoken, LoginMethod.Passkey, out val);
                    if (val == "OK")
                    {

                       // Listar todas empresas criada na Internet.
                        if (listcmp.Count > 0)
                        {
                            cmbOrganization.DisplayMember = "Nome";
                            cmbOrganization.ValueMember = "ID";

                            // Listar a empresa
                            cmbOrganization.DataSource = listcmp;
                            btnRefreshOrg.Enabled = true; ;
                            if (cmbOrganization.SelectedValue.ToString() != "")
                            {
                                List<Branches> listbranch = objbranch.GetBranchList(Url, TokenMethods.authtoken, LoginMethod.Passkey, out val, Guid.Parse(cmbOrganization.SelectedValue.ToString()));
                                if (val == "OK")
                                {

                                    if (listbranch.Count > 0)
                                    {
                                         //Class_Conection connection = new Class_Conection();
                                   //      connection.conn.Open();
                                   //      SqlDataAdapter da = new SqlDataAdapter();
                                  //             int X;

                                //                string insertData = " Insert into ORGBranches  (Pk, Name) values  (@Pk, @Name)";
                                                                                
                                     
                                     cmbBranch.DisplayMember = "Name";
                                       cmbBranch.ValueMember = "Pk";
                                        cmbBranch.DataSource = listbranch;

                                        SqlCommand cmd = new SqlCommand(insertData, connection.conn);
                                        cmd.CommandText = insertData;
                                        cmd.CommandType = CommandType.Text;

                                        cmd.Parameters.AddWithValue("@Code",3);
                                        cmd.Parameters.AddWithValue("@Name", cmbBranch.Text);
                                        X = cmd.ExecuteNonQuery();


                                        // Listar as Filiares.


                                        btnRefreshBranch.Enabled = true;
                                        List<DeviceTypes> listDeviceTypes = objdevicetypes.GetDevicetypeList(Url, TokenMethods.authtoken, LoginMethod.Passkey, out val);
                                        if (val == "OK")
                                        {
                                            if (listDeviceTypes.Count > 0)
                                            {
                                                cmbDeviceType.DisplayMember = "Nome";
                                                cmbDeviceType.ValueMember = "ID";
                                                cmbDeviceType.DataSource = listDeviceTypes;
                                                //btnRefreshDeviceType.Enabled = true;
                                                //btnRefreshDevice.Enabled = true;
                                                btnFilter.Enabled = true;
                                                 btnApplyDevice.Enabled = true;

                                            }

                                            else { MessageBox.Show("No Devicetypes Found "); }
                                        }
                     
                      
            }

            catch (Exception ex)
            {
                throw ex;
            }
        }

Muito obrigado.

Editado por Gabriel Heming
adicionar marcação de código

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 09/07/2018 at 14:45, quintelab disse:

O que acontece ? Qual sua dificuldade ? Algum erro ?
 

Aquela parte da conexão comentada não é necessária ?

Peço desculpa não ter respondido antes.

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por rtavix
      Minha Pagina que desenvolvi.
       
      <!DOCTYPE html> <html lang="pt-br"> <head> <title>Emissao de comprovantes</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> </head> <body> <div class="container form-group col-md-12"> <div class="row"> <div class="form-group col-md-3"></div> <div class="form-group col-md-5"> <div class="clearfix"></div> <div class="form-group"> </div> <div class="panel panel-danger"> <div class="panel-heading"><img src="http://internet.sefaz.es.gov.br/imagens/topo_brasao.png" class="img-responsive center-block" alt="Cinque Terre"><h4 class="text-center">BNES SA</h4></div> <h5 class="text-center"><strong>BNES CORPORATIVO</strong></h5> <h5 class="text-center"><strong>Pagamento e Transferencias Eletrônicas</strong></h5> <h5 class="text-center"><strong>PAGAMENTO: Deposito</strong></h5> <form class="form-horizontal" action="/action_page.php"> <div class="form-group"> <label class="control-label col-sm-3 text-align: left " style="font-weight: normal">Titular: </label> <div class="col-sm-10"> <input type="password" class="form-control" id="inputPassword" placeholder="Password"> </div> </div> <div class="form-group"> <label class="control-label col-sm-3 text-align: left " style="font-weight: normal">Codigo de Barras:</label> </div> <div class="form-group"> <label class="control-label col-sm-3 text-align: left " style="font-weight: normal">Data de Pagamento:</label> </div> <div class="form-group"> <label class="control-label col-sm-3 text-align: left " style="font-weight: normal">Valor Documento:</label> </div> <div class="form-group"> <label class="control-label col-sm-3 text-align: left " style="font-weight: normal">Protocolo:</label> </div> <div class="form-group"> <label class="control-label col-sm-3 text-align: left " style="font-weight: normal">Registro:</label> </div> <div class="form-group"> <label class="control-label col-sm-3 text-align: left " style="font-weight: normal">Emissao:</label> </div> </form> </div> <div class="pull-right"> <button class="btn btn-success" id="btnImprimir" type="button"><p>IMPRIMIR <span class="glyphicon glyphicon-print"></span></p></button> </div> </div> <div class="form-group col-md-3"></div> </div> </div> </body> </html>  
      A ideia é que  quando eu clicar no botão de imprimir dentro de uma gridview ele chama essa pagina que postei logo acima e exibir os dados via label trazendo do banco, mas até o momento eu estou agarrada na parte da modal.
       
       
      Classe do evento click do meu botão que chama a pagina de cima.
       
      protected void ImgImprimir_Click(object sender, EventArgs e) { Response.Redirect("frmImprimir.aspx"); } Meu html da minha pagina:
       
      meu html do botão referente ao metodo:
      <ItemTemplate> <asp:LinkButton ID="imgImprimir" runat="server" CausesValidation="false" CommandArgument='<%#Eval("Flag")%>' CommandName="Imprimir" CssClass="iconesTabelas icon_imprimir" OnClick="ImgImprimir_Click" ToolTip="Imprimir" /> </ItemTemplate>  
    • Por dudaperrut
      meu programa esta dando falha de segmentação nessa função. 
       
      Uma função que recebe dois vetores, o seu tamanho e uma variável ponteiro. A função deve achar o maior elemento do vetor v1 e o menor elemento do vetor v2. A função deve retornar o valor do maior elemento de v1.
      void *MaiorMenor (float *vet1, float *vet2, int tam, float *maior) { float *menor; int i; maior = (float*)malloc(tam * sizeof(float)); for(maior=0; maior<tam; maior++) { for(i=0; i<tam; i++) { if(*(vet1+(tam-i-1)) > *maior) { *maior = *(vet1+(tam-i-1)); } } } menor = (float*)malloc(tam * sizeof(float)); for(menor=0; menor<tam; menor++) { for(i=0; i<tam; i++) { if(*(vet2+(tam-i-1)) < *menor) { *menor = *(vet1+(tam-i-1)); } } } return (maior); }  
    • Por DarthNukku
      Algoritmo: Totobola 
        
      O algoritmo utiliza uma matriz de 13x3 para registar os resultados da jornada de futebol, na configuração 1X2, em que 1 ganhou a equipa da casa, X empataram e 2 ganhou a equipa visitante. 
      Desenvolva para uma casa de apostas a recolha das apostas de vários utilizadores e o cálculo dos resultados acertados. Sabendo que os prémios são atribuídos de acordo com a tabela seguinte, o algoritmo deve apresentar o número de premiados em 1º, 2º ou 3º lugar. 
        
        1º prémio 
      13 
      2º prémio 
      12 
      3º prémio 
      11
    • Por debora9230
      Ação
      Verifique se o grupo de Manoel ou de Joaquim conseguirá vencer essa batalha. Dado um vetor de números, os números ímpares representam os soldados e os números pares representam os rebeldes infiltrados. Some as forças e descubra qual dos dois grupos é mais forte.
       
      Entrada e Saída
      Entrada:
      1ª linha: tamanho do vetor (1 a 50)
      2ª linha: vetor de números, cada número entre 1 e 50.
      Saída:
      "soldados" se os soldados(impares) somados são mais fortes.
      "rebeldes" se os rebeldes(pares) somados são mais fortes.
      "empate" se ambas forças são iguais e todos morrerão.
    • Por rtavix
      Tenho uma aplicação voltada a serviço windows, que realiza leitura dos comprovantes de pagamentos e insere no banco, e por final gerar o arquivo de log de todos os arquivos que foram lidos.
      Vamos supor que segunda feira foi executado a rotina, sendo que essa rotina é todos os dias no horário da 7 horas da manhã, porém de terça feira a diante ao invés de gerar um novo arquivo de log txt, ele utiliza o mesmo arquivo gerado de segunda feira para registrar os logs, e com isso o arquivo vai ficando cada vez mais grande, e isso poderá ocasionar problemas futuros.
       
      Gostaria de saber se existe uma forma para gerar esses logs diariamente, cada arquivo de log para seu respectivo dia, um arquivo para segunda feira, outro novo arquivo para terça e assim por diante. Como poderia está fazendo?
       
      Segue o meu código:
       
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.