2010-09-15 34 views
7

Estoy intentando conectarse a mi base de datos SQLite mediante programación con C#/ASP.NET:¿Cómo puedo acceder a SQLite con C#?

string requete_sql = "SELECT * FROM USERS"; 
connStr = @"Data Source=C:\LocalFolder\FooBar.db;"; 
using (System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(connStr)) { 
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(requete_sql,conn); 
conn.Open(); 
cmd.ExecuteNonQuery(); 
} 

Pero se levanta una excepción (en la línea conn.Open()) diciendo que:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified) 

Lo cual es muy extraño porque copié la cadena de conexión exacta encontrada en el archivo Web.config.

¿Cómo puedo evitar esta excepción?

PD: Mi objetivo es conectarme solo mediante programación a la base de datos sin el archivo web.config.

Gracias,

Saludos.

Respuesta

7

No se puede conectar a sqlite db utilizando clases SQLProvider. Son para servidor sql. Necesita usar las clases SQLite provider.

+0

La url ya no funciona, estoy usando Nuget para obtener la biblioteca, si no puede consultar https://system.data.sqlite.org –

11

SQLLite en C# (requiere System.Data.SQLLite en las referencias)

using System.Data.SQLite; 
using System.Data.Common; 


SQLiteConnection db = new SQLiteConnection("Data Source=C:\LocalFolder\FooBar.db;FailIfMissing=True;"); 
db.Open(); 
using (SQLiteCommand comm=db.CreateCommand()) { 
    comm.CommandText = requete_sql; 
    IDataReader dr=comm.ExecuteReader(); 
    while (dr.Read()) 
    { 
    //... 
    } 
} 
+0

Quizás debería mencionarse que esto no es simplemente una referencia, pero una dependencia NuGet. – CodeMonkey

Cuestiones relacionadas