catch (IOException e)//là tu ne testes que les erreurs du type IOException, toute autre erreur ne sera pas interceptée, il faut toujours mettre un catch général { MessageBox.Show("erreur de base de données");//non ce n'est pas une erreur de base de données, c'est une erreur IO if (e.Source != null) Console.WriteLine("IOException source: {0}", e.Source);//ici vaut mieux un messageBox, tu n'es pas en mode console..... Console.ReadLine();//ça faut enlever ça n'a de l'intérêt qu'en mode console throw;//ça faut surtout pas, tu n'as pas lu la doc jusqu'en bas } catch (Exception e) { MessageBox.Show(string.Format("Message de l'erreur : {0},\r\n source de l'erreur : {1}", e?.Source, e?.Message); }
"C:\Users\Moi\source\repos\projetcsharp2\bases_de_donnees\base_exemple.db";
Dim BDDPath$ = Path.GetTempPath & "\base_exemple.db" File.WriteAllBytes(BDDPath, My.Resources.truc) Dim strConnexion As New SQLiteConnection("Data Source=" & BDDPath) Dim myConnexion As SQLiteConnection = New SQLiteConnection(strConnexion) myConnexion.Open() Dim sql As String = "select ref,titre from table_choses;" Dim cmd As New SQLiteCommand(sql, myConnexion) Dim myreader As SQLiteDataReader = cmd.ExecuteReader() While myreader.Read() ******************** End While myreader.Close() myConnexion.Close()
string chemin = @« \nom du sous dossier \nom du fichier
string chemin = @« ..\nom du fichier
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionSQLiteConnectionStringBuilder SQLCSB = new SQLiteConnectionStringBuilder(); SQLCSB.DataSource = @"base_exemple.db"; string ConnectionString = SQLCSB.ToString(); SQLiteConnection SQLC = new SQLiteConnection(ConnectionString); SQLC.Open(); SQLiteCommand SQLCmd = SQLC.CreateCommand(); SQLCmd.CommandText = "SELECT ref,titre FROM table_choses"; SQLiteDataReader SQLDReader = SQLCmd.ExecuteReader(); while (SQLDReader.Read()) { ****************** } SQLC.Close();
try { using (var connection = new SQLiteConnection("Data Source=base_exemple.db")) using (var command = connection.CreateCommand()) { connection.Open(); command.CommandText = "select ref,titre from trucs"; using (var reader = command.ExecuteReader()) { while (reader.Read()) { // gestion de l'affichage des données } listBox1.Items.Add(""); } } } catch (Exception) { MessageBox.Show("erreur de base de données"); }
je n'ai pas la base dans le dossier publish apres deploiement
try { listBox1.Items.Add(""); string BDDPath = Path.Combine(Path.GetTempPath(), @"hymnes_et_louangesg.db"); File.WriteAllBytes(BDDPath, Properties.Resources.truc); using (var connection = new SQLiteConnection("Data Source=" + BDDPath)) using (var command = connection.CreateCommand()) { connection.Open(); command.CommandText = "select ref,titre from trucs"; using (var reader = command.ExecuteReader()) { while (reader.Read()) { var titre = reader["titre"].ToString(); var num = reader["ref"]; titre = titre.Replace(@"\n", ""); titre = titre.Replace(@"`", "'"); listBox1.Items.Add(" " + num + " - " + titre); } listBox1.Items.Add(""); } } } catch (IOException e) { MessageBox.Show("erreur de base de données"); if (e.Source != null) Console.WriteLine("IOException source: {0}", e.Source); Console.ReadLine(); throw; }
var titre = reader["titre"].ToString();
string titre = reader["titre"].ToString();
24 oct. 2019 à 17:59
je vérifie tout ça et je te dis
j'ai créé une nouvelle application toute fresh pour faire les test,
de manière à ne pas trop abîmer l'existant et de pouvoir gerer les erreur pas a pas
je reviens vers vous
Merci encore
25 oct. 2019 à 22:29
Me revoici avec des nouvelles
En plaçant le nouveau catch, j'ai cette erreur précise, merci pour l'astuce:
System.Data.SQLite,
Source de l'erreur: impossible de charger la DLL 'SQLite.Interrop.dll':
Le module spécifié est introuvable.( Exception de HRESULT: 0x8007007E)
Bizarre tout de même.
pourtant, j'ai J'ai installé System.Data.SQLite par le package NUGet
J'ai télécharger SQLite.Interrop.dll que j'ai mise dans le dossier de l'application sans succès,
Merci encore, on dirait que ça avance