【发布时间】:2017-06-12 11:18:20
【问题描述】:
我正在用 C# 做简单的数据库客户端。现在我正在使用实体框架,一切似乎都很好,但是在向数据库添加新记录后它不会更新。这是我的代码:
private void AddClientConfirmButton_Click(object sender, EventArgs e)
{
MainForm frm = new MainForm();
var newClient = new Klienci
{
Imie = FirstNameTextBox.Text,
Nazwisko = LastNameTextBox.Text,
Adres = AdressTextBox.Text,
Telefon = TelephoneTextBox.Text,
Email = EmailTextBox.Text,
Status = StatusComboBox.Text
};
frm.UpdateDb(newClient);
Close();
}
这里是 UpdateDb 方法:
public void UpdateDb(Klienci newClient)
{
var dataContext = new BAKKEntities();
dataContext.Klienci.Add(newClient);
dataContext.SaveChanges();
dataContext.Dispose();
LoadData();
}
还有 LoadData:
public void LoadData()
{
var dataContext = new BAKKEntities();
var clientList = from r in dataContext.Klienci
select new
{
Imie = r.Imie,
Nazwisko = r.Nazwisko,
Adres = r.Adres,
Telefon = r.Telefon,
Email = r.Email,
Status = r.Status,
};
BindingSource bs = new BindingSource();
bs.DataSource = clientList.ToList();
ClientsDataGridView.DataSource = bs;
dataContext.Dispose();
}
如果我想刷新数据,我必须再次运行我的程序,这不太舒服
【问题讨论】:
-
我不知道该类是否存在该方法,但请尝试
.ToBindingList()而不是.ToList() -
不存在
-
你考虑过用 WPF 代替 winforms 吗? WPF 的数据绑定在您习惯之后简直令人惊叹。
标签: c# .net entity-framework datagrid