我正在尝试使用Xamarin.Android创建一个简单的本地SQLite数据库。 代码是:
string folder = Environment.GetFolderPath (Environment.SpecialFolder.Personal);
SQLiteConnectiondb = new SQLiteConnection (Path.Combine (folder, "Experimental.db"));
db.CreateTable<Employee>();
我的员工课程是:
[Table("Employees")]
public class Employee
{
[PrimaryKey, AutoIncrement]
int Id { get; set; }
string Name { get; set; }
}
每当代码到达db.CreateTable时,我得到的异常是:
SQLite.SQLiteException: near ")": syntax error
at at SQLite.SQLite3.Prepare2 (intptr,string) <IL 0x0002c, 0x00160>
at at SQLite.SQLiteCommand.Prepare () <IL 0x00011, 0x0008f>
at at SQLite.SQLiteCommand.ExecuteNonQuery () <IL 0x00013, 0x000b3>
at at SQLite.SQLiteConnection.Execute (string,object[]) <IL 0x00041, 0x001ab>
at at SQLite.SQLiteConnection.CreateTable (System.Type,SQLite.CreateFlags) <IL 0x000a4, 0x005cb>
at at SQLite.SQLiteConnection.CreateTable<Core.Employee> (SQLite.CreateFlags) <0x00063>
对于我没有经验的人来说,这看起来像是一个与SQLite本身有关的问题。有没有其他人面对过这个问题,如果有的话 - 你的工作是什么?
答案 0 :(得分:6)
将Employee类的属性设置为public,以便SQLite在为表创建列时可以看到它们:
[Table("Employees")]
public class Employee
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
public string Name { get; set; }
}
答案 1 :(得分:0)
问题是链接器选项,有时SQLite-net包没有与您的项目链接。必须检查链接器行为,仅在iOS链接SDK程序集中 mtouch: - linkskip = SQLite-net 然后才能正常工作。