Winform里添加SqliteSqlite數據庫引用的步驟


一、添加System.Data.SQLite引用

 

 

 二、添加linq2db引用

 

 

 三、新建實體類

    [Table("SysInfo")]
    public partial class SysInfo
    {
        [Column("Id"), PrimaryKey]
        [System.ComponentModel.DataAnnotations.Schema.DatabaseGenerated(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity)]
        public int? Id { get; set; }
        [Column("TypeName"), Nullable] public string TypeName { get; set; }
        [Column("InfoName"), Nullable] public string InfoName { get; set; }
        [Column("InfoValue"), Nullable] public string InfoValue { get; set; }
        [Column("CreateDate"), Nullable] public DateTime? CreateDate { get; set; }
    }

四、添加數據庫訪問上下文

    public partial class SqliteDBContext : LinqToDB.Data.DataConnection
    {
        public SqliteDBContext(bool Password = false) : base("SQLite", "DataSource=" + AppDomain.CurrentDomain.BaseDirectory + "\\DB\\Data.db" + ";")
        {
            InitDataContext();
        }
        public SqliteDBContext(string providerName, string configuration) : base(providerName, configuration)
        {
            InitDataContext();
        }
        partial void InitDataContext();
        public ITable<SysInfo> SysInfo { get { return this.GetTable<SysInfo>(); } }
    }

五、讀取、插入、更新

        [TestMethod]
        public void TestMethodRead()
        {
            try
            {
                SqliteDB.SqliteDBContext context = new SqliteDB.SqliteDBContext();
                var first = context.SysInfo.First();

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        [TestMethod]
        public void TestMethodInsert()
        {
            try
            {
                SqliteDB.SqliteDBContext context = new SqliteDB.SqliteDBContext();
                SqliteDB.SysInfo info = new SqliteDB.SysInfo
                {
                    Id = null,
                    InfoName = "a",
                    InfoValue = "",
                    TypeName = "分類"
                };
                int i = context.Insert(info);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        [TestMethod]
        public void TestMethodUpdate()
        {
            try
            {
                SqliteDB.SqliteDBContext context = new SqliteDB.SqliteDBContext();
                SqliteDB.SysInfo info = context.SysInfo.Where(c => c.Id == 4).FirstOrDefault();
                if (info != null)
                {
                    info.InfoName = "測試更新";
                }
                context.Update(info);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

六、sqlite建表證句

CREATE TABLE SysInfo (
    [Id]            integer PRIMARY KEY autoincrement,                -- 設置主鍵
    [TypeName]          varchar(50),
    [InfoName]         varchar (50),
        [InfoValue]         varchar (50),
    [CreateDate]      datetime default (datetime('now', 'localtime'))    -- 時間
);

 

特別注意:由於主鍵是自增的,所以實體中的主鍵要允許為空   public int? Id { get; set; }    

在新增數據的時候賦一個空值如下:

 

                SqliteDB.SysInfo info = new SqliteDB.SysInfo
                {
                    Id = null,
                    InfoName = "a",
                    InfoValue = "",
                    TypeName = "分類"
                };

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM