【发布时间】:2014-05-30 18:22:19
【问题描述】:
为了练习使用实体框架,我正在创建一个 C# WinForms 项目,并使用此链接中问题的答案在 datagridview 中加入和显示表格:
我已经寻找一种干净的方法来保存(到 SQL Server 数据库)在 datagridview 中所做的更改。有没有好的、快速、简短、干净的方法?我见过一些丑陋的尝试,即使它们奏效了,我也被它们的丑陋吓倒了。
只有一张表(没有连接),调用 .SaveChanges 工作正常。
这是为保存连接字段而设置的类:
public class CustAndOrders
{
// Customer table
public Int64 Cust_Id { get; set; }
public string Cust_Name { get; set; }
public DateTime Cust_BDay { get; set; }
//Order table
public Int64 Order_Id { get; set; }
public decimal Order_Amt { get; set; }
public DateTime Order_Date { get; set; }
// OrderDetail table
public Int64 Item_Number { get; set; }
public decimal Item_Amt { get; set; }
}
这是在 datagridview 中显示连接信息的代码。显然,SaveChanges 调用不起作用......但是
AWModel.TestJLEntities dc;
private void button1_Click(object sender, EventArgs e)
{
dc = new AWModel.TestJLEntities();
var query = from c in dc.Customers
join o in dc.Orders on c.CustId equals o.CustId
join od in dc.OrderDetails on o.OrderId equals od.OrderId
orderby o.OrderDate ascending, c.CustId, o.OrderAmount
select new CustAndOrders
{
Cust_Id = c.CustId,
Cust_Name = c.CustName,
Cust_BDay = c.CustBday,
Order_Id = o.OrderId,
Order_Amt = o.OrderAmount,
Order_Date = o.OrderDate,
Item_Number = od.ItemNumber,
Item_Amt = od.ItemAmount
};
var users = query.ToList();
dataGridView1.DataSource = users;
}
private void button2_Click(object sender, EventArgs e)
{
try
{
dc.SaveChanges();
}
catch
{
MessageBox.Show("Error saving changes");
}
}
【问题讨论】:
-
JLee - 我的回答有帮助吗?
标签: c# winforms datagridview entity-framework-4