use*_*586 6 xamarin sqlite-net
我在使用 Xamarin 的 PCL 中使用 Lync 语法。
public class settings
{
[PrimaryKey, AutoIncrement]
public int ID { get; set; }
public string user_name { get; set; }
public string password { get; set; }
public string server { get; set; }
}
void CreateTables()
{
database.CreateTable<settings>();
}
void Insert()
{
settings s = new settings();
s.server = "<none>"
s.user_name = "";
s.password = "";
database.Insert(s)
}
void Update()
{
settings s = database.Table<settings>().FirstOrDefault();
s.server = server_address.Text;
s.user_name = user_name.Text;
s.password = pass.Text;
database.Update(s)
}
Run Code Online (Sandbox Code Playgroud)
更新时我收到“无法更新设置:它没有 PK”,但插入工作正常。我在引用 SQLite.net 的 PCL 中使用 Xamarin。我是 SQlite 和 Xamarin 的新手,因此在询问更多详细信息时请详细说明。
更新 - 已解决
该类与我创建数据库对象实例的位置位于同一名称空间中。只需将“Sqlite”添加到我的属性中就可以解决这个非常奇怪的问题。
[SQLite.PrimaryKey, SQLite.AutoIncrement]
Run Code Online (Sandbox Code Playgroud)
小智 0
我已经在这个问题上储备了一个星期了,甚至上面的解决方案对我不起作用...我认为 ID 不会自动递增,这就是为什么它说:无法更新... 真正对我有用的是手动增加 PK (Id)...如下。
persons.Id++;
Run Code Online (Sandbox Code Playgroud)
在验证数据并将数据插入数据库的那一刻,我只需添加上述代码即可更新成功。
private async void Register_Student(object sender, EventArgs e){... ...
if(!string.Equals(newPassword.Text, rePassword.Text)){
warningLabel.Text = "Enter same pwd"; ...
}
else{
persons.Id++; //solution that worked for me at insertion level
persons.UserName = newUsername.Text; //Text entered by the user
}...
}
Run Code Online (Sandbox Code Playgroud)
谢谢...
| 归档时间: |
|
| 查看次数: |
3398 次 |
| 最近记录: |