c# – 使用AutoIncrement插入
发布时间:2020-12-15 20:59:51 所属栏目:百科 来源:网络整理
导读:我正在尝试将一些数据插入到我的SQLite数据库中,当我使用一条记录执行此操作时,该数据库非常有效.但在循环中我得到一个错误.首先,这是代码 string dataSource = "Data Source=";Connection = new SQLiteConnection(dataSource + this.DatabasePath);var cont
我正在尝试将一些数据插入到我的SQLite数据库中,当我使用一条记录执行此操作时,该数据库非常有效.但在循环中我得到一个错误.首先,这是代码
string dataSource = "Data Source="; Connection = new SQLiteConnection(dataSource + this.DatabasePath); var context = new DataContext(Connection); var users = context.GetTable<User>(); for (int i = 0; i < 2; i++) { User tempUser = new User() { ID = null,EMail = i + "@" + i + ".de",Password = "Test1234",JoinedDate = DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss") }; users.InsertOnSubmit(tempUser); context.SubmitChanges(); } 而用户本身 [Table(Name = "User")] public class User { [Column(Name = "UserID",IsPrimaryKey = true,CanBeNull = false)] public int? ID { get; set; } [Column(Name = "EMail",CanBeNull = false)] public string EMail { get; set; } [Column(Name = "Password",CanBeNull = false)] public string Password { get; set; } [Column(Name = "JoinedDate",CanBeNull = false)] public String JoinedDate { get; set; } [Column(Name = "PaymentMethodID")] public int PaymentMethodID { get; set; } } 表是这样创建的 CREATE TABLE "User" ( `UserID` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,`EMail` TEXT NOT NULL,`Password` TEXT NOT NULL,`JoinedDate` TEXT NOT NULL,`Licenses` INTEGER,`PaymentMethodID` INTEGER ) 最后我得到错误:
我敢打赌,这是因为Field ID,它被设置为AutoIncrement. 解决方法
你只需删除ID = null,因为这是自动增量而不需要写这个.
更改表“User”删除NOT NULL检查自动增加列ID,并在类“User”中删除. ID列是自动递增,然后不需要使用NOT NULL约束进行检查. for (int i = 0; i < 2; i++) { User tempUser = new User() { EMail = i + "@" + i + ".de",JoinedDate = DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss") }; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |