2012-06-19 13 views
5

Estoy tratando de hacer algo que creo que es muy simple. Tengo una cadena de conexión que estoy tomando de una base de datos. Cuando creo una nueva instancia de conexión SQL, se ve (cuando depuro y miro el objeto) como si estuviera completando correctamente la cadena de conexión de db. Sin embargo, el mensaje de error que recibo me hace pensar que se está eliminando toda la información después del guión bajo en el nombre de la base de datos.Nombre de la base de datos después de subrayado en cadena de conexión se ignora

Código Ex:

Database db = new SqlDatabase(ConnectionString); // Connection string appears correct 
DbCommand dbCommand = db.GetStoredProcCommand("StoredProcName"); 
DataSet approverDataset = db.ExecuteDataSet(dbCommand); // when this executes, exception is generated 

Cuando ejecuto el código estoy recibidos con el siguiente mensaje de excepción: El servidor principal "testdb_psidentity" no es capaz de acceder a la base de datos "testdb" bajo la seguridad actual contexto

Aquí está mi conexión de la secuencia:

DataSource=testserver.com;Database=testdb_ps;Trusted_Connection=false;uid=testdb_psidentity;pwd=testpwd 

he intentado cambiar esto:

DataSource=testserver.com;Database=[testdb_ps];Trusted_Connection=false;uid=testdb_psidentity;pwd=testpwd 

Y mientras que parece obtener el nombre completo de la base de datos, también parece estar buscando una base de datos con esos corchetes en el nombre también. Como me sale este error: No se puede abrir la base de datos "[testdb_ps]" solicitada por el inicio de sesión. El inicio de sesión falló. Falló el inicio de sesión para el usuario 'testdb_psidentity'.

Sin embargo, puedo iniciar sesión conéctese a la base de datos usando ese nombre de usuario/contraseña en el estudio de administración del servidor SQL.

¿De qué forma puedo hacer que acepte el nombre de la base de datos testdb_ps nombre de la base de datos? No puedo simplemente cambiar el nombre de la base de datos porque no tengo acceso a esto, y me dijeron que cambiar el nombre de la base de datos simplemente no sucederá.

+0

¿su usuario "testdb_psidentity" tiene permisos de conexión/ejecución en la base de datos? si no está seguro, puede consultarlo yendo a -> haga clic derecho en la base de datos -> propiedades -> permisos -> seleccione el usuario y seleccione debajo de la pestaña explícita ... – NiK

+0

Tristemente, cuando hago clic derecho en DB, no tengo acceso para ver esto. –

+0

Alcance pero intente poner el origen de datos en la sintaxis [testserver.com] o [testserver]. [Com]. Y está seguro de que el nombre de la fuente es testserver.com (no servidor de pruebas). Vea el nombre en SMSS – Paparazzi

Respuesta

1

Puede intentar poner comillas alrededor de la cadena de conexión, creo que está interpretando el guión bajo como delimitador.

Dependiendo de cómo lo usa requiere comillas o

" 
+0

¿Tu cita se equivocó? ¿A qué te refieres? Intenté usarlo como una variable de cadena. No he intentado codificarlo, pero eso generalmente está mal visto en nuestros estándares de codificación. –

+0

Normalmente colocamos nuestras cadenas de conexión en el archivo web.config o app.config. Es por eso que realmente no tenemos un problema con el carácter '_'. Sin embargo, si tiene que obtener la cadena de conexión de una base de datos, intente primero escribirla en una cadena y enviar esa cadena. El '"' se usa en algunos casos cuando no puede simplemente escribir el carácter, pero si hacer una cadena literal en C# no debería necesitarlo –

+0

Solo una sugerencia, pero si esta base de datos ha estado presente por un tiempo, entonces asumiría que otras aplicaciones la usan? Si es así podrías mirar y ver cómo lo están haciendo. –

0

son U capaz de conectarse a la base de datos a través de SQL Server Management Studio?

Trate

  1. Desactivación de cortafuegos
  2. Uso de la dirección IP
  3. mediante sql nombre de la instancia del servidor de forma explícita.
0

Genera las clases de entidad utilizando el asistente. De esta manera obtendrá la cadena de conexión codificada en app.config

Cuestiones relacionadas