2012-04-22 108 views
0

我正在使用ADO.NET并尝试更新SQL Server 2008数据库中表中的列值。但是,该值不会更新。尽管它在C#代码中进行调试时会更新。这里是我的代码:ADO.NET更新SQL Server 2008中的表

using (ADONETClass context = new ADONETClass()) 
{ 
    List<Invoices> list = context.Invoices.ToList<Invoices>(); 
    foreach (Invoices b in list) 
    { 
     b.status = 0; 
    } 
} 

现在我调试的代码,看到context.Invoices.ToList<Invoices>()[0].status确实设置为零。但是当程序运行完毕后,我打开SQL Server Management Studio,状态值仍然为0.不知道发生了什么?我错过了什么吗?

感谢

Varun的

+0

如果您使用实体框架,你为什么要纪念这个为ADO 。净?经典的ado.net看起来很不一样,你需要一个不同的解决方案。那是什么? Ado.net或EF? – walther 2012-04-22 22:21:34

+0

噢好吧,不知道!我今天写了第一个节目。我的C#项目包含一个文件Model1.edmx,它是ADO .NET实体数据模型。所以我认为这是ADO .NET – VVV 2012-04-22 22:24:20

+0

EF是在ado.net之上的ORM。使用ado.net本身,您需要编写实际的SQL查询,管理连接等。使用EF(以及类似的ORM),您将专注于逻辑部分 - 获取结果,管理关系......,而隐藏较低级别的内容从你大部分时间。 – walther 2012-04-22 22:34:32

回答

2

你打电话context.SaveChanges()?

+0

不对不起,我不会打电话那样的。我会尝试一下,看看会发生什么! – VVV 2012-04-22 22:18:30

+0

谢谢。这工作并解决了我的问题。顺便说一下,我可以从哪里得到这类信息?书籍/ MSDN等?感谢您的帮助。 – VVV 2012-04-22 22:20:23

+0

@VVV,精确+视频教程等......但最重要的是 - 谷歌。每个程序员都有无穷无尽的好东西;) – walther 2012-04-22 22:22:47

1

您使用的是实体框架吗? 我认为你缺少context.SaveChanges 电话在的EntityFramework的变化都只是在内存中,并没有写入到数据库中,直到你调用的SaveChanges

+0

是的,我已经添加了它,现在它工作正常。谢谢。 – VVV 2012-04-22 22:21:05