2017-07-31 74 views
0

我正在開發一個應用程序在Xamarin型PCL,我的數據庫結構,我想使用SQLite的,但我有以下的疑慮......SQLite的Xamarin PCL

  1. 當進入我的數據庫記錄,它採用ID = 0,在我的數據模型使用

    [PrimaryKey, AutoIncrement] 
        Public int ViolationID {get; set; } 
    

而且還在,我進入零註冊表中,我不知道我做錯了......或者這是一個錯誤在SQLite.NET-PCL包中?

  1. 如何驗證這些記錄是否真的被輸入?我在我的代碼

    public class DataAccess : IDisposable 
    { 
        private SQLiteConnection connection; 
    
        public DataAccess() 
        { 
         var entity = DependencyService.Get<IEntity>(); 
         connection = new SQLiteConnection(entity.Plataforma, System.IO.Path.Combine(entity.DirectorioBD, "Infraccions.db3")); 
         connection.CreateTable<Infraccion>(); 
        } 
    
        public void InsertInfraccion(Infraccion infraccion) 
        { 
         connection.Insert(infraccion); 
        } 
    
        public void UpdateInfraccion(Infraccion infraccion) 
        { 
         connection.Update(infraccion); 
        } 
    
        public Infraccion GetInfraccion(int InfraccionID) 
        { 
         return connection.Table<Infraccion>().FirstOrDefault(c => c.InfraccionID == InfraccionID); 
        } 
    
        public List<Infraccion> GetInfraccions() 
        { 
         return connection.Table<Infraccion>().OrderBy(c => c.MotivoID).ToList(); 
        } 
    
        public void DeleteInfraccion(Infraccion infraccion) 
        { 
         connection.Delete(infraccion); 
        } 
    
        public void Dispose() 
        { 
         connection.Dispose(); 
        } 
    } 
    

應該在我的手機上創建一個名爲Infraccions.db3表?

謝謝您的留言...

回答

0

你是說所有的新記錄爲0的ID,並覆蓋現有的記錄在數據庫中?

如果是這樣,那麼這是SQLite的工作原理 - 對於int列,0是一個有效的值,因此當ID爲0時,它將覆蓋記錄,而不是增加值。

使用int主鍵的正確方法是定義主鍵作爲可爲空INT,這樣一個新的記錄值爲空,這將更新爲下一個可用的ID:

[PrimaryKey, AutoIncrement] 
public int? ViolationID {get; set; } 

基本上將int更改爲int?

0

1)當進入我的數據庫的記錄,它需要的ID = 0,在我的數據 模型使用

您正在使用模型中的主鍵和自動遞增這意味着你無法在主字段中手動輸入0,並自動在此字段中輸入下一個值。

2)如何驗證這些記錄是否真的被輸入?

您可以在創建數據庫時獲取數據庫文件路徑,並且可以打開並查看該數據。

(System.IO.Path.Combine(entity.DirectorioBD, "Infraccions.db3")) 

有許多瀏覽器插件可以訪問sqllite數據庫。

+0

我找不到.db3文件,你是以隱藏的方式創建它?如果是這樣......我如何獲得公共模式?對我有幫助 –

+0

您使用哪款手機? –

+0

阿爾卡特Pixi 4 @Ziyad –