none
SqlConnection ConnectionString Exportar RRS feed

  • Pregunta

  • Ola a todos,

     

    Estoy programando una aplicación windows form que se conecta a una base de datos, el problema es cuando llevo la aplicación a otro directorio u otro pc, me dice q no puede abrir la conexion con la base de datos.

     

    Creo q el problema está en el connectionString, ya que me obliga a poner el  AttachDbFilename

     

    Data Source=.\SQLEXPRESS;AttachDbFilename=C:\WindowsApplication1\WindowsApplication1\SMS_Date.mdf;Integrated Security=True;User Instance=True

     

    Todo lo que he leido sobre conexiones a base de datos, nadie pone el AttachDbFilename, pero si yo cambio eso me da error al abrir la base de datos.

     

    La pregunta es si hay alguna manera de modificar esto y no me de problemas al llevar la aplicacion a otro PC. Soy novato en esto asi q, por favor, si no es muxo pedir, me expliqueis todo detalladamente. Gracias.

     

    Muxas gracias por anticipado a todos.

    jueves, 6 de septiembre de 2007 9:23

Respuestas

Todas las respuestas

  • Parece un problema de permisos de usuario, pero sería más fácil realizar un pronóstico si nos reportas el mensaje de error.

     

    Gracias!

    jueves, 6 de septiembre de 2007 9:35
    Moderador
  •  

    Ola, perdon por el retraso pero tuve q salir

     

    el error es un mensaje d error de windows

     

    Microsoft :NET Framework

     

    Excepcion no controlada en la aplicacion ....

     

    error al intentar adjuntar una base de datos nombrada automáticamente para el archivo

    ..\WindowsApplication1\WindowsApplication1\SMS_Date.mdf. Ya existe una base de datos con el mismo nombre, no se puede abrir el archivo especifiicado o se encuentra en un recurso compartido UNC

     

     

    Detalles:

     

    Consulte el final de este mensaje para obtener más detalles sobre cómo invocar a la depuración
    Just-In-Time (JIT) en lugar de a este cuadro de diálogo.

    ************** Texto de la excepción **************
    System.Data.SqlClient.SqlException: Error al intentar adjuntar una base de datos nombrada automáticamente para el archivo ..\WindowsApplication1\WindowsApplication1\SMS_Date.mdf. Ya existe una base de datos con el mismo nombre, no se puede abrir el archivo especificado o se encuentra en un recurso compartido UNC.
       en System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
       en System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
       en System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
       en System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK)
       en System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject)
       en System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart)
       en System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
       en System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
       en System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
       en System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
       en System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
       en System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
       en System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
       en System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
       en System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
       en System.Data.SqlClient.SqlConnection.Open()
       en WindowsApplication1.SMS.Update_Data_db() en C:\Documents and Settings\PC\Escritorio\Sting\Pruebas\Ivan\Versiones\WindowsApplication1\WindowsApplication1\SMS.vb:línea 444
       en WindowsApplication1.SMS.Update_Timer() en C:\Documents and Settings\PC\Escritorio\Sting\Pruebas\Ivan\Versiones\WindowsApplication1\WindowsApplication1\SMS.vb:línea 290
       en WindowsApplication1.SMS.SMS_Load(Object sender, EventArgs e) en C:\Documents and Settings\PC\Escritorio\Sting\Pruebas\Ivan\Versiones\WindowsApplication1\WindowsApplication1\SMS.vb:línea 62
       en System.EventHandler.Invoke(Object sender, EventArgs e)
       en System.Windows.Forms.Form.OnLoad(EventArgs e)
       en System.Windows.Forms.Form.OnCreateControl()
       en System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
       en System.Windows.Forms.Control.CreateControl()
       en System.Windows.Forms.Control.WmShowWindow(Message& m)
       en System.Windows.Forms.Control.WndProc(Message& m)
       en System.Windows.Forms.ScrollableControl.WndProc(Message& m)
       en System.Windows.Forms.ContainerControl.WndProc(Message& m)
       en System.Windows.Forms.Form.WmShowWindow(Message& m)
       en System.Windows.Forms.Form.WndProc(Message& m)
       en System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       en System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       en System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


    ************** Ensamblados cargados **************
    mscorlib
        Versión del ensamblado: 2.0.0.0
        Versión Win32: 2.0.50727.832 (QFE.050727-8300)
        Código base: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
    ----------------------------------------
    WindowsApplication1
        Versión del ensamblado: 1.0.0.0
        Versión Win32: 1.0.0.0
        Código base: file:///C:/Documents%20and%20Settings/PC/Escritorio/WindowsApplication1/WindowsApplication1/obj/Debug/WindowsApplication1.exe
    ----------------------------------------
    Microsoft.VisualBasic
        Versión del ensamblado: 8.0.0.0
        Versión Win32: 8.0.50727.42 (RTM.050727-4200)
        Código base: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
    ----------------------------------------
    System
        Versión del ensamblado: 2.0.0.0
        Versión Win32: 2.0.50727.832 (QFE.050727-8300)
        Código base: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
    ----------------------------------------
    System.Windows.Forms
        Versión del ensamblado: 2.0.0.0
        Versión Win32: 2.0.50727.832 (QFE.050727-8300)
        Código base: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
    ----------------------------------------
    System.Drawing
        Versión del ensamblado: 2.0.0.0
        Versión Win32: 2.0.50727.832 (QFE.050727-8300)
        Código base: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
    ----------------------------------------
    System.Runtime.Remoting
        Versión del ensamblado: 2.0.0.0
        Versión Win32: 2.0.50727.832 (QFE.050727-8300)
        Código base: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
    ----------------------------------------
    Interop.smscr
        Versión del ensamblado: 1.0.0.0
        Versión Win32: 1.0.0.0
        Código base: file:///C:/Documents%20and%20Settings/PC/Escritorio/WindowsApplication1/WindowsApplication1/obj/Debug/Interop.smscr.DLL
    ----------------------------------------
    System.Data
        Versión del ensamblado: 2.0.0.0
        Versión Win32: 2.0.50727.832 (QFE.050727-8300)
        Código base: file:///C:/WINDOWS/assembly/GAC_32/System.Data/2.0.0.0__b77a5c561934e089/System.Data.dll
    ----------------------------------------
    System.Xml
        Versión del ensamblado: 2.0.0.0
        Versión Win32: 2.0.50727.832 (QFE.050727-8300)
        Código base: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
    ----------------------------------------
    System.Configuration
        Versión del ensamblado: 2.0.0.0
        Versión Win32: 2.0.50727.832 (QFE.050727-8300)
        Código base: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
    ----------------------------------------
    mscorlib.resources
        Versión del ensamblado: 2.0.0.0
        Versión Win32: 2.0.50727.832 (QFE.050727-8300)
        Código base: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
    ----------------------------------------
    System.Transactions
        Versión del ensamblado: 2.0.0.0
        Versión Win32: 2.0.50727.832 (QFE.050727-8300)
        Código base: file:///C:/WINDOWS/assembly/GAC_32/System.Transactions/2.0.0.0__b77a5c561934e089/System.Transactions.dll
    ----------------------------------------
    System.EnterpriseServices
        Versión del ensamblado: 2.0.0.0
        Versión Win32: 2.0.50727.832 (QFE.050727-8300)
        Código base: file:///C:/WINDOWS/assembly/GAC_32/System.EnterpriseServices/2.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.dll
    ----------------------------------------
    System.Windows.Forms.resources
        Versión del ensamblado: 2.0.0.0
        Versión Win32: 2.0.50727.42 (RTM.050727-4200)
        Código base: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_es_b77a5c561934e089/System.Windows.Forms.resources.dll
    ----------------------------------------

    ************** Depuración JIT **************
    Para habilitar la depuración Just In Time (JIT), el archivo de configuración de esta
    aplicación o equipo (machine.config) debe tener el
    valor jitDebugging establecido en la sección system.windows.forms.
    La aplicación también se debe compilar con la depuración
    habilitada

    Por ejemplo:

    <configuration>
        <system.windows.forms jitDebugging="true" />
    </configuration>

    Cuando esté habilitada la depuración JIT, cualquier excepción no controlada
    se enviará al depurador JIT registrado en el equipo
    en lugar de controlarlo mediante el cuadro de diálogo.


     

     

     

    jueves, 6 de septiembre de 2007 10:08
  • Me refería sin el Attach. Creo que no es necesario, y me gustaría saber qué error te motivo a tomar esta alternativa.

     

     

    jueves, 6 de septiembre de 2007 10:32
    Moderador
  • ok, si quito el attach

     

    Data Source=.\SQLEXPRESS;Integrated Security=True;User Instance=True

     

    Cuando ejecuto el codigo, me da una excepcion

     

    SqlDataAdapter1.SelectCommand.CommandText = "SELECT Date, Destination_Number, Text FROM Table_SMS ORDER BY Date DESC"

     

    SqlConnection1.Open()

    SqlDataAdapter1.Fill(DataSet1, "SMS_Date")

    SqlConnection1.Close()

     

    En la linea subrayada, me pone "el nombre del objeto Table_SMS no es valido"

     

    Gracias por tu ayuda

    jueves, 6 de septiembre de 2007 10:38
  • Prueba a poner esto en el Web.Config despues del nodo connectionstring:

     

    Code Snippet

    <connectionStrings>

    <clear/>

     

     

     

    Salu2

     

    Colabora con el foro: Si la respuesta te es de utilidad marca la pregunta como respondida.

    Luis Ruiz Pavón

    MCP - MCTS

    Blog: http://geeks.ms/blogs/lruiz

    jueves, 6 de septiembre de 2007 10:40
  • El problema no es la conexión con el servidor, pq conectas, la cuestión es que si no indicas a qué base de datos te quieres conectar, debes ponerle el nombre de la misma como prefijo al nombre de la tabla en el select.

     

    En resumen: No encuentra la tabla porque no le indicas la BD dónde debe ir a buscarla.

     

    La forma más sencilla de solventarlo sería añadiendo:

     

    Database=myDataBase

     

    en la Cadena de Conexión.

     

    Salud y suerte!

    jueves, 6 de septiembre de 2007 10:48
    Moderador
  • Me sigue pasando lo mismo.

     

    gracias por el intento

    jueves, 6 de septiembre de 2007 10:48
  • Puedes postear la cadena de conexión tal cual está ahora?

     

    Gracias!

     

    jueves, 6 de septiembre de 2007 10:51
    Moderador
  •  

    Parece q algo hacemos, pq me da otro error en la misma linea.

     

    ahi lo dejo por si me podeis ayudar:

     

    No se puede abrir la base de datos "SMS_Date" solicitada por el inicio de sesión. Error de inicio de sesión.
    Error de inicio de sesión del usuario 'PORTATIL-2E8BF0\PC'.

     

     

    jueves, 6 de septiembre de 2007 10:51
  • Data Source=.\SQLEXPRESS;Database=SMS_Date;Integrated Security=True;User Instance=True

     

    Deberia poner usuario y password, no???

    Pero el password como lo se???

    El usuario supongo que es lo de laptop

     

     

    Gracias

    jueves, 6 de septiembre de 2007 10:53
  • A ver por partes:

     

    - Yo sacaría lo de "User Instance". El problema no viene por aquí... pero no tengo ni idea de lo quehace, con lo que si tú tampoco... pues podemos probar de sacarlo...

     

    - Por dónde sí viene el problema, es en "Integrated Security". Aquí le indicas que te autentificarás en la BD, que ahora sí encuentra, usando el usuario y password que has utilizado para entrar en Windows. ¿Problema? Que si no das permisos en tu base de datos para el usuario que estás usando en Windows, pues te deniega el acceso.

     

    ¿Solución?

     

    1. Dar permisos a tus usuarios Windows en tu base de datos vía SQL Server.

    2. Autenticarte usando un usuario SQL Server. EN este caso, deberás indicar en la cadena de conexión:

     

    Uid=myUsername;Pwd=myPassword;

     

    Salud y suerte!

    jueves, 6 de septiembre de 2007 10:59
    Moderador
  • Ola otra vez,

     

    he intentado hacer lo q dijiste pero me decia que el usuario no tiene los permisos y no se como asignarlos.

     

    Asi q probe a hacer lo siguiente,en app.config he escrito lo siguiente:

     

    <connectionStrings>

    <clear/>

    <add name="Sales"

    providerName="System.Data.SqlClient"

    connectionString= "server=myserver;database=SMS_Date;uid=user;pwd=pwd" />

    </connectionStrings>

     

     

    y luego  en la connectionString he escrito:

     

    server=myserver;database=SMS_Date;uid=user;pwd=pwd

     

    Y me da el siguiente error:

     

    Error mientras se establecía la conexión con el servidor. Al conectar con SQL Server 2005, el error se puede producir porque la configuración predeterminada de SQL Server no admite conexiones remotas. (provider: Proveedor de canalizaciones con nombre, error: 40 - No se pudo abrir una conexión con SQL Server)

     

    Y el otro dia ya abilite las conexiones remotas

     

    Q puedo hacer??

     

    Gracias

     

     

     

     

    jueves, 6 de septiembre de 2007 11:21
  • No sé que es lo que pretendes con estos cambios... la verdad es que me has dejado algo descolocado...

     

    El problema no es de la cadena de conexión, se trata de configurar correctamente el servidor SQL Server.

     

    jueves, 6 de septiembre de 2007 11:33
    Moderador
  • Ok, y como configuro el servidor??

     

    Gracias

    jueves, 6 de septiembre de 2007 12:34
  • Esta ya es una cuestión más propia de los foros de Technet(Administradores):

    http://forums.microsoft.com/TechNet-ES/default.aspx?SiteID=30

     

    De todos modos, mira de dedicarle un rato al siguiente enlace:

    http://technet.microsoft.com/es-es/library/aa337562.aspx

     

    Salud y suerte!

     

    jueves, 6 de septiembre de 2007 12:43
    Moderador