2010-07-01 16 views
7

Estoy usando MS Visual Studio 2010 para crear una aplicación con acceso a la base de datos SQL Server 2008, pero lo que hice para crear la base de datos fue agregar un nuevo "SQL Server 2008 Database Project", lo agregó y me muestra todo en mi Solution Explorer, pero ¿cómo escribo la cadena de conexión para conectarme a ella, porque escribí esta y no funcionó?¿Cómo se define una cadena de conexión a una base de datos de SQL Server 2008?

SqlConnection cnTrupp = new SqlConnection("Initial Catalog = Database;Data Source = localhost;Persist Security Info=True;"); 

actualización:

que utiliza éste:

cnTrupp = new SqlConnection("database=DB_Trupp;server=.\\SQLExpress;Persist Security Info=True;integrated security=SSPI"); 

Pero cuando se utiliza el cnTrupp.Open() me dice que el inicio de sesión falló.

+3

http://www.connectionstrings.com/ las tiene todas. –

Respuesta

11

Consulte el sitio web connection strings que tiene un montón de ejemplos para sus cadenas de conexión.

Básicamente, se necesitan tres cosas:

  • nombre del servidor al que desea conectarse (uso "." o (local) o localhost para la máquina local)
  • nombre de la base de datos que desea conectarse a
  • alguna manera de definir la seguridad - ya sea la seguridad de Windows integrada, o definir un combo nombre de usuario/contraseña

Por ejemplo, si desea conectarse a su máquina local y el AdventureWorks base de datos con seguridad integrada, utilice:

server=(local);database=AdventureWorks;integrated security=SSPI; 

O si tiene SQL Server Express en el equipo en la instalación por defecto, y que desea conectarse a la base de datos AdventureWorksLT2008, utilice esto:

server=.\SQLExpress;database=AdventureWorksLT2008;integrated Security=SSPI; 
+0

'localhost' no tiene nada que ver con la web o HTTP. Funcionará bien con SQL Server. –

+0

Puede proporcionar una fuente para el localhost vs (local) vs. información? Siempre pensé que podrías usar localhost ... –

+0

@Abe Miessler: no, tienes toda la razón: localhost funciona igual de bien. Perdón por la confusión ..... –

0

Debe especificar cómo se autenticará con la base de datos. Si desea utilizar la seguridad integrada (esto significa utilizar la autenticación de Windows utilizando su cuenta local o de dominio de Windows), añadir esto a la cadena de conexión:

Integrated Security = True; 

Si desea utilizar la autenticación de SQL Server (es decir, se especifica un inicio de sesión y la contraseña en lugar de utilizar una cuenta de Windows), añadir lo siguiente:

User ID = "username"; Password = "password"; 
3

de seguridad estándar
datos Fuente = servidor \ instancia; Initial Catalog = MyDatabase; User Id = MyUserName; contraseña = miContraseña;

Trusted conexión
datos Fuente = servidor \ instancia; Initial Catalog = MyDatabase; Integrated Security = SSPI;

He aquí una buena referencia sobre las cadenas de conexión que tenga a mano: ConnectionStrings.com

+0

bien, pero voy a instalarlo en otra computadora, ¿cómo se supone que debo saber el nombre de la computadora del otro? – Osukaa

+0

Instalar qué? La base de datos o la aplicación? Lo único que te importa en tu cadena de conexión es dónde está la base de datos. –

+0

Creo que puede estar confundido serverName \ instanceName se refiere al SQLServer, no a la máquina en la que se está ejecutando el código. – JohnFx

0

Copiar/Pegar lo que está abajo en su código:

SqlConnection cnTrupp = new SqlConnection("Initial Catalog = Database;Data Source = localhost;Persist Security Info=True;Integrated Security = True;"); 

Tenga en cuenta que esta solución utiliza las ventanas de cuenta para iniciar sesión en.

Como John y Adam han dicho, esto tiene que ver con la forma en que está iniciando sesión (o no iniciando sesión). Mire el enlace que John brindó para obtener una mejor explicación.

+1

'localhost' es un identificador de sistema para el adaptador local. Funcionará bien; Pruébalo en SSMS. –

+0

@ Adam Robinson: tienes toda la razón, funciona como un encanto. No estoy seguro de dónde obtuve eso ... ¡vale, aprendí algo nuevo hoy! :-) –

0

en lugar de escribir en su código directamente le sugiero que haga uso de la <connectionStrings> elemento específico en el archivo .config y recuperar a partir de ahí.

También haga uso de la declaración using para que después del uso, su conexión se cierre y elimine automáticamente.

Una gran referencia para encontrar cadenas de conexión: connectionstrings.com/sql-server-2008.

+0

-1 Esto no tiene nada que ver con la pregunta real. –

+0

+1 él hace un buen punto y proporciona un recurso para la información de la cadena de conexión. –

+0

@Abe: Su "punto" es "buscarlo". Agregar eso a una respuesta que resuelva el problema real es bueno. Publicar eso con información que, aunque es bueno saber, no está relacionada con la pregunta, no lo es. –

Cuestiones relacionadas