C# 无法更新列表1:它没有主键
我试图更新数据库中的一条记录,更改是在我为页面创建的列表上进行的,但是当我试图更新数据库本身时,我得到一个错误 无法更新列表1:它没有主键 应用程序在代码的最后一行中断。我的表有一个主键。在C# 无法更新列表1:它没有主键,c#,sqlite,visual-studio-2012,sqlite-net,C#,Sqlite,Visual Studio 2012,Sqlite Net,我试图更新数据库中的一条记录,更改是在我为页面创建的列表上进行的,但是当我试图更新数据库本身时,我得到一个错误 无法更新列表1:它没有主键 应用程序在代码的最后一行中断。我的表有一个主键。在Students中应该是Tno private void ChangeMajor_Button_Click(object sender, RoutedEventArgs e) { var query = Roster_Students.Where(s => s.Tno == Tno_TextBo
Students
中应该是Tno
private void ChangeMajor_Button_Click(object sender, RoutedEventArgs e)
{
var query = Roster_Students.Where(s => s.Tno == Tno_TextBox.Text);
foreach (var student in query)
student.Major = ChangeMajor_TextBox.Text;
App.DBConnection.Update(this.Roster_Students);
}
稍微修改一下代码似乎可以解决这个问题。以下是新代码:
private void ChangeMajor_Button_Click(object sender, RoutedEventArgs e)
{
var query = Roster_Students.Where(s => s.Tno == Tno_TextBox.Text);
foreach (var student in query) {
student.Major = ChangeMajor_TextBox.Text;
App.DBConnection.Update(student);
}
}
只需再次检查PK是否到位…您是否有表的DDL?Tno_TextBox.Text返回一个字符串。您是否尝试在Where子句中将其转换为int?@AzharKhorasany Tno实际上是我表中的一个字符串。@JohnLBevan这里是DDL:0 | Tno | varchar(10)| 0 | 11 | Name | varchar(50)| 0 | 02 | Major | varchar 10 | 0 |0