none
String de Conexão RRS feed

  • Pergunta

  • Ola a todos,

    estou precisando fazer inserções de dados manualmente, sem usar os comandos interativos dos GridView, porem estou tendo dificuldades na string de conexao, o banco de dados é Sql Express como nome Banco.mdf dentro da pasta App_Data, entao, fui no webconfig e copiei a string, so que na hora que compila da erro, abaixo segue a linha, espero ajuda de alguem para resolver este impasse...

    SqlConnection oConnection = new SqlConnection();
    SqlCommand oCommand = new SqlCommand();
    oConnection.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=App_Data\\Dados.mdf;Integrated Security=True;User Instance=True";
    oCommand.Connection = oConnection;
    oCommand.CommandText = "INSERT INTO Acontece (IdIdioma, NoticiaReduzia, NoticiaCompleta, Fonte ) VALUES (tbIdioma, tbTextoReduzido, ftbNoticia, tbFonte)";
    oConnection.Open();
    oCommand.ExecuteNonQuery();

    o erro que ta dando eh quando executa o comando open

    An attempt to attach an auto-named database for file App_Data\\Dados.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share."

    inicialmente, tinha apenas uma barra, mas dava erro na compilacao, ai coloquei duas barras apos ver na net uma string assim, compilou, mas nao sei se ta certo

    Agradeço qualquer ajuda,

    Vinicius Silva
    quinta-feira, 9 de agosto de 2007 02:34

Todas as Respostas

  • Boas,

    Segundo a mensagem de erro, já deve haver um database chamado Dados na sua instancia do Sql Server, assim ele não consegue atachar outro com mesmo nome. Ou ainda, o arquivo .mdf que vc está tentando atachar pode estar em uma pasta não compartilhada, sem direitos de leitura/gravação.

     

    Verifique estes pontos.

     

    quinta-feira, 9 de agosto de 2007 11:21
  • Daniel, obrigado pela ateção,

    bem, na minha consepção, a stringconnection eh um caminho para indicar em qual base de dados eu quero trabalhar, então, no meu exemplo de codigo passado, eu quero inserir em uma tabela da minha base um novo registro, entao logicamente a base Dados tem que existir, eu não to querendo criar outra base para querer atachar... no caso a pasta APP_Data onde o arquivo Dados.mdf esta, tava setada para somente leitura, porem quando uso um GridView com o atributo inserting dele, funciona normal, entao o fato de estar somente leitura nao estaria impedindo de inclusões, pelo menos desta forma...

    o que eu estou precisando com urgencia eh poder fazer insersões atraves de codigos, ao inves de utilizar grid view ou datail view, com comandos prontos...

    se vc ou alguem puder me passar um exemplo de conexao manual, como no exemplo que passei, ficaria muito grato, pois pode ser muito simples, mas nao to conseguindo... ou será que todo mundo usa da forma interativa apenas clicando no atributos do componente ??

    tudo isso eh por que eu tenho um campo text na tabela, que precisa ser gravado com formatacoes html como: negrito, alinhamentos, links e etc, e estou usando o free text box, porem, usando um DetailsView com o atributo de inserting, transformei em template o campo text e exclui o textbox e substitui por um freetextbox, porem quando ia salvar, o compoente freetextbox não passa o valor da propriedade text, vinha vazio, e como o campo e not null dava erro na gravacao do campo... por isso to fazendo um codigo manual, pois ai sim, eu consigo pegar o atributo text do freetextbox, porem esbarrei neste outro problema que gerou este post...


    Grato por qualquer ajuda...

    Vinicius Silva
    sábado, 11 de agosto de 2007 01:24
  •  

    Vinicius o problema está no caminho do banco.. fiz os mesmo procedimento que vc fez e deu o mesmo erro... ai eu mudei o diretório do banco e coloquei o caminho físico do banco.. ai ocorreu a inserção...

     

    Eu acho que se a página for compilada e rodada em um IIS mesmo, sem ser pelo VS talvez funcione da forma que vc fez..

     

    Espero ter ajudado..

     

     

    sábado, 11 de agosto de 2007 18:46
  • Obrigado Ricardo, eu fiz tambem e deu certo... depois me viro em ver como vai ser quando eu publicar isso...


    segunda-feira, 13 de agosto de 2007 00:39