Jump to content

Recommended Posts

Posted (edited)

Boas,

Estou a iniciar-me na programação em ASP.NET e estou a tentar fazer uma página simples com um insert numa base de dados mdf.

Estou a fazer a criar a string de ligação e acontece que quando adiciono um \ na string ele tenta fazer escape a qualquer coisa. Mas eu não pretendo que ele faça isso.

Tenho a minha ligação assim:

	string caminho = this.Server.MapPath("~/app_data/dados.mdf");

	System.Data.SqlClient.SqlConnection ligacao = null;

	try {
		ligacao = new System.Data.SqlClient.SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=" + caminho + ";Integrated Security=True;User Instance=True");

Na parte do .\SQLEXPRESS é onde me dá o tal erro (Unrecognized Escape Sequence).

Como posso resolver isto?

Edited by nunolevezinho
Posted (edited)

Com \\

A primeira barra invertida é o chamado "escape character". Serve para dizer que o caracter seguinte é para ser tratado de forma especial, por exemplo \n é tratado como apenas um caracter: o fim de linha.

No teu caso o compilador pensa que queres dar um significado especial ao S, mas não encontra nenhum por isso queixa-se.

Se usares \\ o significado especial da segunda barra é a barra propriamente dita

                        ligacao = new System.Data.SqlClient.SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=" + caminho + ";Integrated Security=True;User Instance=True");

Edit só para reforçar:

as construções de \ seguido de um caracter válido só ocupam 1 caracter:

"\n" -- fim de linha -- 1 caracter

"\\" -- barra invertida -- 1 caracter

"\S" -- sem significado

Edited by pmg

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Posted (edited)

Viva,

Outra forma de resolver o problema é usando o caractér arroba (@) no início da string:

ligacao = new System.Data.SqlClient.SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=" + caminho + ";Integrated Security=True;User Instance=True");
Edited by Rechousa

Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.