我有一个数据库表Doctor
其中包含code_doctor
(varchar),name
(varchar),gender
(varchar),salary
(int)列。我想使用实体框架在此数据库中实现 CRUD。但是,尝试更新数据时出现问题。
public partial class UpdatePage : Window
{
DB_Rumah_Sakit_2697Entities _db = new DB_Rumah_Sakit_2697Entities();
string code;
public UpdatePage(string codedoc)
{
InitializeComponent();
code = codedoc;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
Dokter updateDoctor = (from m in _db.Doctors where m.kd_doctor == kode select m).Single();
updateDoctor.code_doctor = textboxkode.Text;
updateDoctor.name = textboxnama.Text;
updateDoctor.gender = gendercombobox.Text;
updateDoctor.salary= int.Parse(textboxgaji.Text);
_db.SaveChanges();
MainWindow.datagrid.ItemsSource = _db.Dokters.ToList();
this.Hide();
}
}
我认为问题可能在这里:
from m in _db.Doctors where m.kd_doctor == kode
我没有看到kode
任何地方宣布。这应该是code
吗?
我可能会避免将 linqQL 与流畅函数混合,而只使用 Fluent:
Dokter updateDoctor = _db.Doctors.Single(x => x.kd_doctor == code);
除此之外,没有什么真正突出的。从异常来看,您似乎可能缺少其中一个属性中的.Text
或类似内容,尽管我怀疑这会在查询表达式中。
这是您的应用程序中的确切代码吗?异常发生在哪一行,在.Single()
上还是在_db.SaveChanges()
上?