Winform里添加SqliteSqlite数据库引用的步骤

Posted 星星c#

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 = "分类"
                };

 

以上是关于Winform里添加SqliteSqlite数据库引用的步骤的主要内容,如果未能解决你的问题,请参考以下文章

C#winform,combobox添加可筛选功能

c#中 怎么件类文件 在winform中用的,我想把数据库的一些频繁操作的比如连接等操作添加到类文件里。

C#winform里界面设计时怎样添加快捷方式

C#winform里界面设计时怎样添加快捷方式

.NET winForm怎么向datagridview中一条一条的添加数据?

winform第三方控件Sidebar已添加进工具箱 怎么使用?怎么工具箱里没有控件