Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fabricio F. Vieira

ConnectionString única e centralizada para vários projetos!

Recommended Posts

Boa tarde Pessoal,

tenho vários projetos Asp.Net MVC e dentro de cada projeto tenho uma conexão com o banco através da connectionstring do web.config. O que eu gostaria de fazer seria deixar uma connection string unica e todos os projetos direcionados a ela, se meu banco de dados mudar, ou a conexão, ou usuário e senha, eu teria que mudar apenas ela e não todos os webconfigs de cada projeto.

Existe uma melhor maneira de centralizar essa informação num servidor pra todos os meus projetos?

 

Agradeço desde de já!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rapaz, cada site tem sua particularidade, se vc tiver acesso ao servidor fisicamente você pode criar uma pasta e por isso dentro de um txt e ler traves de suas App, porém tem que ser uma pasta para acesso somente internamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho acesso ao servidor, é um servidor da minha empresa e todos os projetos ficam lá, minha intenção é colocar um arquivo em uma pasta lá mesmo e direcionar de alguma maneira as conexões nessa pasta. Pesquisei algo sobre criar um app.config e 'adicionar' ele no web.config ou adicionar como link mas não sei se fiz certo, pq não funcionou.
Vou pesquisar algo do q mencionou, de colocar em um txt.

Valeu pelo feedback!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por CamilaLopez
      Bom dia amigos, peguei um projeto em andamento na empesa que trabalho na linguagem C# e gaz tempo que não vejo isso já pois trabalho com outras linguagens hoje.
      tenho de dar manutenção neste sistema e ele esta com um problema que não consigo resolver já a 1 mês por causa de uma falha de conexão, se puderem me ajudar eu agradeço demais !!!! :D
      >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
      Não há suporte para a palavra-chave: 'provider'.
      Descrição: Ocorreu uma exceção sem tratamento durante a execução da atual solicitação da Web. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código.

      Detalhes da Exceção: System.ArgumentException: Não há suporte para a palavra-chave: 'provider'.

      Erro de Origem:
       
      Exceção sem tratamento foi gerada durante a execução da atual solicitação da Web. As informações relacionadas à origem e ao local da exceção podem ser identificadas usando-se o rastreamento de pilha de exceção abaixo.
      Rastreamento de Pilha:
       
    • Por ClaudemarR
      Ola pessoal sou novo por aqui :)
      Preciso de uma ajudinha de vocês, estou tentando inserir o Bootstrap em um programinha MVC segue imagem do problema + código fonte 
      @model alunos.Models.pessoa @{ ViewBag.Title = "Alterando os dados de um aluno"; } <br/> <br/> @using (Html.BeginForm()) { @Html.AntiForgeryToken() <div class="panel panel-primary"> <div class="panel-heading">Alteração dos dados de um Aluno</div> <div class="panel-body form-inline"> @Html.ValidationSummary(true, "", new { @class = "text-danger" }) @Html.HiddenFor(model => model.codigo) <div class="form-group"> @Html.LabelFor(model => model.nome, htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-md-10"> @Html.EditorFor(model => model.nome, new { htmlAttributes = new { @class = "form-control" } }) @Html.ValidationMessageFor(model => model.nome, "", new { @class = "text-danger" }) </div> </div> <div class="form-group"> @Html.LabelFor(model => model.Endereco, htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-md-10"> @Html.EditorFor(model => model.Endereco, new { htmlAttributes = new { @class = "form-control" } }) @Html.ValidationMessageFor(model => model.Endereco, "", new { @class = "text-danger" }) </div> </div> <div class="form-group"> @Html.LabelFor(model => model.numero, htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-md-10"> @Html.EditorFor(model => model.numero, new { htmlAttributes = new { @class = "form-control" } }) @Html.ValidationMessageFor(model => model.numero, "", new { @class = "text-danger" }) </div> </div> <div class="form-group"> @Html.LabelFor(model => model.Bairro, htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-md-10"> @Html.EditorFor(model => model.Bairro, new { htmlAttributes = new { @class = "form-control" } }) @Html.ValidationMessageFor(model => model.Bairro, "", new { @class = "text-danger" }) </div> </div> <div class="form-group"> @Html.LabelFor(model => model.cidade, htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-md-10"> @Html.EditorFor(model => model.cidade, new { htmlAttributes = new { @class = "form-control" } }) @Html.ValidationMessageFor(model => model.cidade, "", new { @class = "text-danger" }) </div> </div> <div class="form-group"> @Html.LabelFor(model => model.telefone, htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-md-10"> @Html.EditorFor(model => model.telefone, new { htmlAttributes = new { @class = "form-control" } }) @Html.ValidationMessageFor(model => model.telefone, "", new { @class = "text-danger" }) </div> </div> <div class="form-group"> @Html.LabelFor(model => model.Cpf, htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-md-10"> @Html.EditorFor(model => model.Cpf, new { htmlAttributes = new { @class = "form-control" } }) @Html.ValidationMessageFor(model => model.Cpf, "", new { @class = "text-danger" }) </div> </div> <div class="form-group"> @Html.LabelFor(model => model.Rg, htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-md-10"> @Html.EditorFor(model => model.Rg, new { htmlAttributes = new { @class = "form-control" } }) @Html.ValidationMessageFor(model => model.Rg, "", new { @class = "text-danger" }) </div> </div> <div class="form-group"> @Html.LabelFor(model => model.Email, htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-md-10"> @Html.EditorFor(model => model.Email, new { htmlAttributes = new { @class = "form-control" } }) @Html.ValidationMessageFor(model => model.Email, "", new { @class = "text-danger" }) </div> </div> <div class="form-group"> @Html.LabelFor(model => model.exame, htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-md-10"> @Html.EditorFor(model => model.exame, new { htmlAttributes = new { @class = "form-control" } }) @Html.ValidationMessageFor(model => model.exame, "", new { @class = "text-danger" }) </div> </div> <div class="panel-footer panel-info"> <div class="col-md-offset-2 col-md-10"> <input type="submit" value="Gravar alterações" class="btn btn-info" /> @Html.ActionLink("Retornar para a listagem de Alunos", "Index", null, new { @class = "btn btn-warning" }) </div> <br /> <br /> </div> </div> </div> } @section Scripts { @Scripts.Render("~/bundles/jqueryval") }
    • Por Jalber Romano
      Minha View Edit é aberta dentro de uma janela modal Bootstrap através de uma função dinâmica criada para os botões Create, Edit e Delete. Cada botão possui a sua respectiva url de referência e uma propriedade data-modal="" para ser chamada no evento click de cada botão (Ex: data-modal="" href="/pessoa-gerenciar/editar-pessoa/' + full.id). No evento click, é chamada a função "openmodal", a url é passada por parâmetro e a #modalGenerica é aberta. Há também a função "bindForm" que faz com que cada submit dado na view Edit funcione corretamente e que a view Edit permaneça sempre dentro da modal #modalGenerica.
      Até aí tudo perfeito e funcionando corretamente!
      //Bloco da Janela Modal
      <div class="modal fade modal-primary" id="modalGenerica" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static"> <div class="modal-dialog modal-dialog-centered"> <div class="modal-content"> <div id="contentModal"> </div> </div> </div> </div> //Controller
      [HttpPost] [Authorize(Policy = "CanWritePessoaData")] [Route("pessoa-gerenciar/editar-pessoa/{id:int}")] [ValidateAntiForgeryToken] public IActionResult Edit(PessoaViewModel pessoaViewModel) { if ((pessoaViewModel.PessoaNatureza == Domain.ValueObjects.Pessoa.PessoaNatureza.Juridica && pessoaViewModel.PessoaJuridicaViewModel == null) || (pessoaViewModel.PessoaNatureza == Domain.ValueObjects.Pessoa.PessoaNatureza.Fisica && pessoaViewModel.PessoaFisicaViewModel == null)) { var pessoa = _pessoaAppService.Change(pessoaViewModel); ModelState.Clear(); return View(pessoa); } if (!ModelState.IsValid) return View(pessoaViewModel); _pessoaAppService.Update(pessoaViewModel); if (IsValidOperation()) ViewBag.Sucesso = "Pessoa Atualizada!"; return View(pessoaViewModel); } //JavaScript
      $(document).ready(function () { $.ajaxSetup({ cache: false }); // busca os elementos do atributo data-modal e os inscreve no evento click $('a[data-modal]').on('click', function (e) { // Abre a janela modal com o formulario solicitado openmodal(this.href); return false; }); $('table').on('click', 'a[data-modal]', function (e) { //Este tratamento personaliza a Modal Excluir if (this.id == 'btnExcluir') { $(".modal-dialog").addClass("modal-lg"); $(".modal-dialog").addClass("modal-danger"); } openmodal(this.href); return false; }); $('#modalGenerica').on('hidden.bs.modal', function () { $('#contentModal').html(''); }); dataTablePrincipalLoad(); }); function openmodal(url) { // Faz uma requisição get e carrega o formulário na janela modal $('#contentModal').load(url, function () { $('#modalGenerica').modal({ keyboard: true }, 'show'); //Enviar o foco para campo Descrição $('#modalGenerica').on('shown.bs.modal', function (event) { // $("#txtNomeCompleto").focus(); }); $("#pessoaNatureza").on('change', function (event) { document.getElementById("frmEdit").submit(); //open(ur); }); // Inscreve o evento submit bindForm(this); }); } function bindForm(dialog) { // Inscreve o formulário na janela modal com o evento submit $('form', dialog).submit(function () { if ($(this).valid()) { // Realiza una requisição ajax $.ajax({ url: this.action, type: this.method, data: $(this).serialize(), success: function (result) { // Se a requisição for satisfatória, recarrega a página atual if (result.success) { window.location = window.location; } else { $('#contentModal').html(result); bindForm(); } } }); return false; } else { return false; } }); } function dataTablePrincipalLoad() { $('.dataTables_filter input').attr('placeholder', 'Search...').hide(); var table = $("#dtPrincipal").DataTable({ "processing": true, // for show progress bar "serverSide": true, // for process server side "filter": true, // this is for disable filter (search box) "orderMulti": false, // for disable multiple column at once //"dom": '<"top"i>rt<"bottom"lp><"clear">', // "ordering": false, "ajax": { "url": '/pessoa-gerenciar/getPessoa', "type": "POST", "datatype": "json" }, "columnDefs": [ //Estilos Das Colunas { className: "align-center", "targets": [0] }, { className: "align-center", "targets": [3] }, //Largura das Colunas { width: 100, targets: 0 }, { width: 100, targets: 3 } ], "columns": [ { "data": "id", "name": "Id", "autoWidth": true }, { "data": "nomeRazao", "name": "NomeRazao", "autoWidth": true }, { "data": "apelidoFantasia", "name": "ApelidoFantasia", "autoWidth": true }, { "render": function (data, type, full, meta) { return '<div class="btn-group" aria-label="Button group with nested dropdown" role="group"><a id="btnEditar" data-modal="" href="/pessoa-gerenciar/editar-pessoa/' + full.id + '"class="btn btn-sm btn-icon btn-default btn-outline" title="Visualizar/Editar"><i class="icon wb-edit" aria-hidden="true"></i></a><a id="btnExcluir" data-modal="" href="/pessoa-gerenciar/remover-pessoa/' + full.id + '" class="btn btn-sm btn-icon btn-default btn-outline" title="Excluir"><i class="icon wb-trash" aria-hidden="true"></i></a><div class="btn-group" role="group"><a title="Mais Ações" class="btn btn-sm btn-outline btn-default dropdown-toggle" id="exampleGroupDrop2" data-toggle="dropdown" aria-expanded="false"><i class="icon wb-grid-4" aria-hidden="true"></i></a><div class="dropdown-menu" aria-labelledby="exampleGroupDrop2" role="menu"><a class="dropdown-item" href="javascript:void(0)" role="menuitem"><i class="icon wb-time" aria-hidden="true"></i>Histórico</a></div></div></div>'; } } ], "language": { "sEmptyTable": "Nenhum registro encontrado", "sInfo": "Mostrando de _START_ até _END_ de _TOTAL_ registros", "sInfoEmpty": "Mostrando 0 até 0 de 0 registros", "sInfoFiltered": "(Filtrados de _MAX_ registros)", "sInfoPostFix": "", "sInfoThousands": ".", "sLengthMenu": "_MENU_ resultados por página", "sLoadingRecords": "Carregando...", "sProcessing": "Processando...", "sZeroRecords": "Nenhum registro encontrado", "sSearch": "Pesquisar", "searchPlaceholder": "Digite algo...", "oPaginate": { "sNext": "Próximo", "sPrevious": "Anterior", "sFirst": "Primeiro", "sLast": "Último" }, "oAria": { "sSortAscending": ": Ordenar colunas de forma ascendente", "sSortDescending": ": Ordenar colunas de forma descendente" } } }); $('.search-input').on('keyup change', function () { var index = $(this).attr('data-column'), val = $(this).val(); table.columns(index).search(val.trim()).draw(); }); } //View Edit
      @using Retaguarda.Domain.ValueObjects.Pessoa @model Retaguarda.Application.ViewModels.Pessoa.PessoaViewModel @{ ViewData["Title"] = "Editar Pessoa"; Layout = null; } <div> <form asp-action="Edit" asp-controller="Pessoa" id="frmEdit"> @Html.AntiForgeryToken() <div class="modal-shadow"> <div class="modal-header modal-header-primary"> <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button> <h4 class="modal-title text-center"> @ViewData["Title"] </h4> </div> <div class="form-horizontal"> <você:summary /> <div class="panel-body"> @await Html.PartialAsync("_Pessoa") @if (Model.PessoaNatureza == PessoaNatureza.Fisica) { <div id="divPessoaFisica"> @await Html.PartialAsync("_PessoaFisica") </div> } else if (Model.PessoaNatureza == PessoaNatureza.Juridica) { <div id="divPessoaJuridica"> @await Html.PartialAsync("_PessoaJuridica") </div> } </div> </div> <div class="modal-footer"> <div class="col-md-offset-2 col-md-10"> <button id="btnSalvar" type="submit" class="btn btn-primary"><i class="icon wb-check"></i> Salvar </button> <button id="btnFechar" class="btn btn-danger" data-dismiss="modal"><i class="icon wb-close"></i> Fechar </button> </div> </div> </div> </form> </div> <script src="~/lib/jquery-validation/dist/jquery.validate.js"></script> <script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script> @section Scripts { @{await Html.RenderPartialAsync("_ValidationScriptsPartial");} } PROBLEMA:
      Quando eu seleciono no dropdown #pessoaNatureza uma determinada pessoa (por exemplo pessoa jurídica), preciso fazer um submit no evento change para que a model seja alterada com dados de pessoa jurídica e preciso que a view Edit seja retornada para dentro da mesma janela modal, mas isso não está acontecendo e a view é aberta em uma página e com um layout desconfigurado. Parece que o bind não funcionada... (O Interessante é que para Salvar funciona perfeitamente, mas para o evento change do drop-down não!). Acho que estou tentando dar o submit com document.getElementById("frmEdit").submit(); e não está fazendo o bind corretamente, pois não passa pela função openmodal. Já tentei fazer isso, mas não consegui, pois teria que chamar a função de dentro dela... ALguém saberia como me ajudar?
       
      $("#pessoaNatureza").on('change', function (event) { document.getElementById("frmEdit").submit(); //open(ur); });  

    • Por Cyberlacs
      Tenho uma página que tem uma tabela, o usuário tem a opção de ordenar as linhas desta tabela com evento drag and drop.
      O evento funciona perfeitamente no windows, Chrome, Internet Explorer, Firefox.
       
      Quero que esta tabela funcione em dispositivo móvel para ser mais exato com Android pois vou usar internamente dentro da empresa onde trabalho e lá usa somente tablets e celulares com OS Android.
       
      Em minha tabela inseri um id sortable
      <tbody id="sortable" style="cursor:pointer"> e também nesta linha o script pega a linha com os valores
      <td class="taskSingleInLine" id="task@(Model.LoteList.ElementAt(i).NumeroLote)" data-taskid="@(Model.Genero.ElementAt(i).GeneroId)-@(i+1)"> Segue abaixo código Javscript/Ajax e o html
      <script src="~/Scripts/jquery-ui-1.12.1.min.js"></script> <script> $(document).ready(function () { $("#sortable").sortable({ update: function (event, ui) { var itemIds = ""; $("#sortable").find(".taskSingleInLine").each(function () { var itemId = $(this).attr("data-taskid"); itemIds = itemIds + itemId + ","; }); $.ajax({ url: '@Url.Action("UpdateItem", "Lotes")', data: { itemIds: itemIds }, type: 'POST', success: function (data) { location.reload(); }, error: function (xhr, status, error) { } }); } }); }); </script>  
      Html - ASP.NET MVC
      <div class="table-responsive"> <table class="table table-hover table-striped"> <thead> <tr> <th> @Html.DisplayNameFor(model => model.Lote.NumeroLote) </th> </tr> </thead> <tbody id="sortable" style="cursor:pointer"> @for (var i = 0; i < Model.LoteList.Count(); i++) { <tr> <td class="taskSingleInLine" id="task@(Model.LoteList.ElementAt(i).NumeroLote)" data-taskid="@(Model.Genero.ElementAt(i).GeneroId)-@(i+1)"> @Html.DisplayFor(Model => Model.LoteList.ElementAt(i).NumeroLote) </td> </tr> } </tbody> </table> </div>
    • Por T13
      Galera, tudo jóia?
       
      Estou utilizando Web.Config + ASP CLASSICO para criação de urls amigáveis.
      Em minha página inicial, tenho 2 URLs com query.string que preciso tornar amigável e, consigo fazer isso já com o web.config, porém, apenas um dos links está funcionando com a rule que tenho. O outro está direcionando para a mesma página do primeiro link.
       
      Exemplo: Tenho em minha página inicial duas chamadas, sendo:
      1 - PRODUTOS "produtos.asp?id=3"  (URL amigável funcionando lisa, convertendo para "meusite.com/3")
      2 - LOJAS "lojas.asp?idloja=4" (URL redirecionando para a URL de cima "meusite.com/3", ou seja, para a página de PRODUTOS e não para a de LOJAS)
       
      Como faço para que cada link seja apontado para a respectiva página? PRODUTOS para PRODUTOS e LOJAS para LOJAS??
      Obrigado.
       
      <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="lojas" stopProcessing="true"> <conditions> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> </conditions> <match url="^(.*)$" ignoreCase="true" /> <action type="Rewrite" url="lojas.asp?idloja={R:1}" appendQueryString="true" /> </rule> <rule name="produtos" stopProcessing="true"> <conditions> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> </conditions> <match url="^(.*)$" ignoreCase="true" /> <action type="Rewrite" url="produtos.asp?id={R:1}" appendQueryString="true" /> </rule> </rules> </rewrite> </system.webServer> </configuration>  
×

Informação importante

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