12
votes

Qu'est-ce que "la source de données ne peut pas être vide. Utilisation: Mémoire: Pour ouvrir une base de données en mémoire" signifie?

J'ai récemment converti ma base de données SQL Server en DB SQLite. Mais quand j'essaie d'ouvrir ma sqlite à l'aide de .Open () code> Il me jette cette erreur:

ConnectionString = @"Data Source=D:\XXX.db;Version=3";
connection = new SQLiteConnection(connectionString);
connection.Open();


4 commentaires

Veuillez mettre la chaîne de connexion dans la question.


Connexionstring = @ "Source de données = D: \ xxx.db; version = 3; connexion = nouvelle sqliteconnection (connexionstring); connexion.open ();


Cet espace est-il significatif après le = ?? Source de données = D: \ xxx.db


Désolé les gars c'est mon erreur .. Au moment où je l'ai mentionné comme "DataSource" sans espaces. Ce n'est pas causé le problème. Merci


4 Réponses :


0
votes

Parce que votre source de données est vide. Ajoutez le paramètre Source de données à votre chaîne de connexion. avant d'ouvrir la base de données SQLite.


3 commentaires

Ce n'est pas vide .i avait spécifié le chemin exact mec. Connexionstring = @ "Source de données = D: \ xxx.db; version = 3; connexion = nouvelle sqliteconnection (connecteur); connexion.open ();


Retrait peut-être l'espace de l'avant de la «D:` et fermez les connexions avec une double citation pourrait vous aider.


Désolé les gars c'est mon erreur .. Au moment où je l'ai mentionné comme "DataSource" sans espaces. Ce n'est pas causé le problème. Merci



1
votes

Vous n'avez pas fourni de nom de source de données, alias où le fichier SQLite existe.


1 commentaires

J'ai fait mes autres commentaires



12
votes

Il y a un espace après votre source de données: source de données = D: \ xxx.db code>. De plus, dans votre copie / pâte, il n'y a pas de devis de fermeture à la chaîne de connexion. Voici une chaîne de connexion qui fonctionne pour moi pour l'outil de test:

@"Data Source=C:\Temp\Test.db3;Pooling=true;FailIfMissing=false;Version=3"


1 commentaires

Merci mec. Je l'ai déjà compris et vous pouvez voir que dans mon commentaire ci-dessous la question



0
votes

J'ai eu cette même erreur récemment lorsque j'essayais en fait d'utiliser la version en mémoire de SQLite.

Je configurais la connexion comme suit: p>

var connection = new SqliteConnection("Filename=:memory:");
connection.Open();


0 commentaires