In questo caso ho usato un oggetto globale
MainForm.GOptions.CurrentDb, che contiene il percorso fisico del file Sqlite.
Se va in errore restituisco Null.

        public static DataSet GetDataset(string IdCategory)
        {
            SQLiteConnection cn =null;
            SQLiteCommand cmd=null;
            SQLiteDataAdapter _dataAdapter=null;
            DataSet _dataSet=null;
            try{
                
                     
                string dbpath=MainForm.GOptions.CurrentDb;
                string connString=@"Data Source="+dbpath+";UTF8Encoding=True;Version=3";
                 cn = new SQLiteConnection(connString);
                 cmd =cn.CreateCommand();
                string commandString = "Select rowid,link,type,CreationDate from tbl where category_id=$id_cat";
                
                commandString +=" order by rowid desc limit 11000";
                
                    _dataAdapter =  new SQLiteDataAdapter(commandString, connString);
                    _dataAdapter.SelectCommand.Parameters.Add("$id_cat",DbType.String).Value=IdCategory;
                    _dataSet = new DataSet();
                        _dataAdapter.Fill(_dataSet,"tbl");
                        //_dataAdapter.Dispose();
                        //cn.Close();cn.Dispose();
                        return _dataSet;
            }catch{ /*System.Windows.Forms.MessageBox.Show(e.Message);*/ return null;}
            finally{cn.Close(); cn.Dispose();cmd.Dispose();cmd=null;_dataAdapter.Dispose();_dataAdapter=null;_dataSet.Dispose();_dataSet=null;}
        
        }