簡體   English   中英

LiteDB - 未經授權的訪問異常

[英]LiteDB - Unauthorized Access Exception

我正在嘗試使 LiteDB 工作 - 只是在嘗試添加新條目時被此異常停止。

System.UnauthorizedAccessException:未經授權訪問路徑“F:\ProjectName\bin\Debug\Data\2021”。

    public bool AddEntry(TplMainEntry Template)
    {
        // Find a new index for the new entry.
        LiteCollection<TplMainEntry> MainDBCollection = Entries.GetCollection<TplMainEntry>("MainEntries");

        MainDBCollection .EnsureIndex(x => x.iID); // EXCEPTION THROWN HERE!!!!

        var vField = MainDBCollection .FindOne(Query.All("iID", 1));
        // If no index is found, then Database must be new. Use index 1.
        // Else, get max index from the collection - then +1 it.
        if (vField == null)
        {
            Template.iID = 1;
            Template.iIndex = 1;
        }
        else
        {
            int iMaxID = int.Parse(MainDBCollection .Max().ToString());
            Template.iID = iMaxID + 1;
            Template.iIndex = Template.iID;
        }
        Entries.Mapper.Entity<TplMainEntry>().Id(x => x.iID);

        // Insert new entry, then update collection.
        Collection.Insert(Template);
        return Collection.Update(Template);
    }

LiteDB 由 Form 構造函數初始化。

        sDBPath = sAppPath + "\\Data\\" + DateTime.Now.Year.ToString() + "\\";
        if (!Directory.Exists(sDBPath)) Directory.CreateDirectory(sDBPath);
        MainDatabase = new LiteDBClass(sDBPath);
        public LiteDBClass(string sPath)
        {
            try
            {
                Entries = new LiteDatabase(sPath);
                Collection = Entries.GetCollection<TplMainEntry>("MainEntries");
            }
            catch (DirectoryNotFoundException cExc)
            {
                // Bla
            }
            catch (LiteException cExc)
            {
                // Bla bla
            }
            catch (Exception cExc)
            {
                //Bla bla bla
            }
        }

我已經在使用管理員權限運行 VS,並且在應用程序清單上將 requestedExecutionLevel 設置為 Admin。 我錯過了什么????

 public LiteDBClass(string sPath)
        {
            try
            {
                // Needs a full path + file name.
                Entries = new LiteDatabase(sPath + "\\" + sDatabaseName);
                Collection = Entries.GetCollection<TplMainEntry>("MainEntries");
            }
            catch (DirectoryNotFoundException cExc)
            {
                // Bla
            }
            catch (LiteException cExc)
            {
                // Bla bla
            }
            catch (Exception cExc)
            {
                //Bla bla bla
            }
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM