2012-06-04 22 views
6
private void SetConnection() 
{ 
    string a = string.Format(@"Data Source={0};Version=3;New=False;Compress=True;", "~/lodeDb.db"); 
    sql_con = new SQLiteConnection(a); 
} 

private void ExecuteQuery(string txtQuery) 
{ 
    SetConnection(); 
    sql_con.Open(); 
    sql_cmd = sql_con.CreateCommand(); 
    sql_cmd.CommandText = txtQuery; 
    sql_cmd.ExecuteNonQuery(); 
    sql_con.Close(); 
} 

Cuando corro a sql_cmd.ExecuteNonQuery, SqlException es "No se puede abrir el archivo de base de datos". El archivo "lodeDb.db" en mi alojamiento en línea, creo que la fuente de datos es incorrecta. ¿Puede decirme si el archivo db en el alojamiento en línea. Cómo establecer datasourse para la conexión Gracias le Nota: archivo Permiso hay ningún problema en que aquíSQLite + C#: No se puede abrir el archivo de base de datos

+1

nos ha encontrado una solución a su problema?No estableciste ninguna respuesta como solución, y no escribiste nada tú mismo. – gajo357

Respuesta

5

Es una cadena Problema de conexión,

SQL Lite conexión de las ramas Formatos

básica:

Data Source=filename;Version=3; 

Usando UTF16:

Data Source=filename;Version=3;UseUTF16Encoding=True; 

Con contraseña:

Data Source=filename;Version=3;Password=myPassword; 

Utilizando el pre formato de base de 3.3x:

Data Source=filename;Version=3;Legacy Format=True; 

Con la agrupación de conexiones:

Data Source=filename;Version=3;Pooling=False;Max Pool Size=100; 

Leer única conexión:

Data Source=filename;Version=3;Read Only=True; 

EDIT 1:
Conexión a base de datos remota difiere, debe comprobar lo siguiente.

  1. Firewall port permissibility.
  2. Empresa/host que proporciona la base de datos está permitiendo la conexión remota.
+1

Lo siento, pero cuando ejecuto la aplicación en mi computadora local, esta aplicación funciona muy bien. Pero despliego la aplicación al servidor ---> error. ¿Puede decirme cómo conectarme a la base de datos – Futureman

3

Mi problema se resuelve cuando complemento "Diario Mode = Off;" en la cadena de conexión

deshabilitar el archivo Diario Éste desactiva la revista de deshacer por completo.

Data Source = c: \ mydb.db; versión = 3; Modo Diario = Off;

26

Obtuve la misma excepción al intentar abrir bases de datos que están en la unidad de red (la ruta comienza con "\\ myServer \ myDbFile ...") y la resolví poniendo true en el parámetro parseViaFramework en el constructor de conexión.

sql_con = new SQLiteConnection(a, true); 
+1

Esto funcionó perfectamente para mí (usando Parallels en una Mac que predetermina mapeo de red entre bastidores). – terphi

+0

Me encontré con este problema al construir y mover el directorio bin a una ubicación externa. Funcionaría bien en la carpeta visual studio, pero no en la nueva ubicación. Establecer mi conexión para incluir parseviaframework funcionó perfectamente y resolvió el error "no se puede abrir db" en mi proyecto C#. ¡Gracias! – SheldonH

+0

También puede anteponer las rutas UNC con '\\\', como se describe [aquí] (http://sqlite.1065341.n5.nabble.com/System-Data-SQLite-and-UNC-Paths-td72920.htm) . – tm1

1

que tenían el mismo problema y se fija usando la cadena de consulta como: @ "Data Source = C: \ Datos de programa \ proj \ lodeDb.db; versión = 3; FailIfMissing = False"

Por eso, significaba que cuando se utiliza la ruta completa para la ubicación del archivo de base de datos, funciona, cuando uso "~/lodeDb.db" no funciona

Cuestiones relacionadas