我正在尝试将一些数据插入到我的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 )
最后我得到错误:
An exception of type ‘System.Data.Linq.DuplicateKeyException’ occurred in System.Data.Linq.dll but was not handled in user code
Additional @R_314_4045@ion: Eine Entität,deren Schlüssel bereits verwendet wird,kann nicht hinzugefügt werden.
我敢打赌,这是因为Field ID,它被设置为AutoIncrement.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。