linq 连接数据库 ,无法更新数据库,请高手帮帮忙

时间:2023-01-21 20:44:25
开发语言:C#
开发模式:WindowsForm
问题:用DataGridView显示数据,并有增删改功能,但是更新后的数据只能昙花一现,再点一下显示数据就没了,数据库中叶没有发生过改变
我是菜鸟一只,最近研究Linq技术,请高手帮帮忙呀~

17 个解决方案

#1


把你的LINQ代码贴出来!!没代码怎么给你解释啊!

#2


修改数据后,有没有submitchanges操作?

#3


引用楼主 sakurapurple 的回复:
开发语言:C#
开发模式:WindowsForm
问题:用DataGridView显示数据,并有增删改功能,但是更新后的数据只能昙花一现,再点一下显示数据就没了,数据库中叶没有发生过改变
我是菜鸟一只,最近研究Linq技术,请高手帮帮忙呀~

问题补充:
代码如下:
                 经办人表 经办人表对象 = new  经办人表();
                经办人表对象.工号 = dgv区域.CurrentRow.Cells["工号"].Value.ToString();
                经办人表对象.姓名 = dgv区域.CurrentRow.Cells["姓名"].Value.ToString();
                经办人表对象.性别 = dgv区域.CurrentRow.Cells["性别"].Value.ToString();
                hspdb.经办人表s.InsertOnSubmit(经办人表对象);
                hspdb.SubmitChanges();
                 HspDataDataContext hs = new  HspDataDataContext();
                dgv区域.DataSource = hs.经办人表s;

#4


不懂什么叫做linq数据库,这是新发明的东西?

#5


linq to sql
using (DbDataContext db = new DbDataContext())  
{  
var editStudent = db.Students.SingleOrDefault<Student>(s=>s.ID == id);  
editStudent.Name = "aaa";  
db.SubmitChanges();  
}  
db.Students.DeleteOnSubmit(student);  

#6


引用 4 楼 sp1234 的回复:
不懂什么叫做linq数据库,这是新发明的东西?

老是挑字眼,本来一说就明白了的事情,能够帮助解决问题你就帮助解决。

#7


引用楼主 sakurapurple 的回复:
开发语言:C#
开发模式:WindowsForm
问题:用DataGridView显示数据,并有增删改功能,但是更新后的数据只能昙花一现,再点一下显示数据就没了,数据库中叶没有发生过改变
我是菜鸟一只,最近研究Linq技术,请高手帮帮忙呀~

WindowsForm模式的linq是可以直接更新数据库的,我想你的模式应该是:WindowsForm+WPF+Linq
,直接更新数据是没有问题的。就怕你使用silverlight+ling,要更新数据库就必须使用WCF等技术了。

#8


引用 4 楼 sp1234 的回复:
不懂什么叫做linq数据库,这是新发明的东西?

半年的接触你好像一直抵触这样的说法,我看到你只是在内存中的数据集合中使用过linq,没有看到你把linq应用到sqlserver数据库中,所以你总是反对别人把linq和数据库连在一起讲,你觉得这有意义吗?虽然概念上有些瑕疵,但说起来简洁一听就懂,为什么不可以呢?

#9


最近研究Linq技术 的增删改查的 谁有案例发我一份啊

#10


linq更新,先要 把 数据读出来,再 更改要更新的字段,再 提交
如下:
引用 5 楼 wuyq11 的回复:
linq to sql
using (DbDataContext db = new DbDataContext())  
{  
var editStudent = db.Students.SingleOrDefault<Student>(s=>s.ID == id);  
editStudent.Name = "aaa";  
db.SubmitChanges();  
}  
……

#11


没有where 条件 。
修改还是删除 都要根据一个唯一值找到在sub事件才有用

#12


应该是没 提交的原因 SubmitChanges()

#13


SubmitChanges()

#14


引用 3 楼 sakurapurple 的回复:
引用楼主 sakurapurple 的回复:
开发语言:C#
开发模式:WindowsForm
问题:用DataGridView显示数据,并有增删改功能,但是更新后的数据只能昙花一现,再点一下显示数据就没了,数据库中叶没有发生过改变
我是菜鸟一只,最近研究Linq技术,请高手帮帮忙呀~

问题补充:
代码如下:
                经办人表 经办人表对象 = new ……

你这是添加吧。更新有条件吗

#15


LINQ 不是 SQL,
必须先把数据对象抽出来,
再更新,
然后提交!!

不能在抽对象的同时更新!!

注意多看看LINQ的基础说明

#16


不知道是不是因为你定义两次HspDataDataContext的原因?插入的时候用hspdb,读取的时候重新定义了个hs?也不知道你其他部分什么样的~

#17


看了你的那个使用LINQ to SQL向数据库添加记录的做法,非常符合微软一再强调规范。按道理说应该是能够被成功添加到数据库的。不过,数据库既然没有保存你所添加的数据记录,这很可能是根本就没有向数据库发送添加数据的SQL命令。而目前我的推测是,很可能你的那个【经办人表】实体类里面根本就没有设置任何的主键属性。你注意看看是不是这样呢?如果没有设置主键属性的话,那就只能读取数据,而不能进行增删改的操作。

#1


把你的LINQ代码贴出来!!没代码怎么给你解释啊!

#2


修改数据后,有没有submitchanges操作?

#3


引用楼主 sakurapurple 的回复:
开发语言:C#
开发模式:WindowsForm
问题:用DataGridView显示数据,并有增删改功能,但是更新后的数据只能昙花一现,再点一下显示数据就没了,数据库中叶没有发生过改变
我是菜鸟一只,最近研究Linq技术,请高手帮帮忙呀~

问题补充:
代码如下:
                 经办人表 经办人表对象 = new  经办人表();
                经办人表对象.工号 = dgv区域.CurrentRow.Cells["工号"].Value.ToString();
                经办人表对象.姓名 = dgv区域.CurrentRow.Cells["姓名"].Value.ToString();
                经办人表对象.性别 = dgv区域.CurrentRow.Cells["性别"].Value.ToString();
                hspdb.经办人表s.InsertOnSubmit(经办人表对象);
                hspdb.SubmitChanges();
                 HspDataDataContext hs = new  HspDataDataContext();
                dgv区域.DataSource = hs.经办人表s;

#4


不懂什么叫做linq数据库,这是新发明的东西?

#5


linq to sql
using (DbDataContext db = new DbDataContext())  
{  
var editStudent = db.Students.SingleOrDefault<Student>(s=>s.ID == id);  
editStudent.Name = "aaa";  
db.SubmitChanges();  
}  
db.Students.DeleteOnSubmit(student);  

#6


引用 4 楼 sp1234 的回复:
不懂什么叫做linq数据库,这是新发明的东西?

老是挑字眼,本来一说就明白了的事情,能够帮助解决问题你就帮助解决。

#7


引用楼主 sakurapurple 的回复:
开发语言:C#
开发模式:WindowsForm
问题:用DataGridView显示数据,并有增删改功能,但是更新后的数据只能昙花一现,再点一下显示数据就没了,数据库中叶没有发生过改变
我是菜鸟一只,最近研究Linq技术,请高手帮帮忙呀~

WindowsForm模式的linq是可以直接更新数据库的,我想你的模式应该是:WindowsForm+WPF+Linq
,直接更新数据是没有问题的。就怕你使用silverlight+ling,要更新数据库就必须使用WCF等技术了。

#8


引用 4 楼 sp1234 的回复:
不懂什么叫做linq数据库,这是新发明的东西?

半年的接触你好像一直抵触这样的说法,我看到你只是在内存中的数据集合中使用过linq,没有看到你把linq应用到sqlserver数据库中,所以你总是反对别人把linq和数据库连在一起讲,你觉得这有意义吗?虽然概念上有些瑕疵,但说起来简洁一听就懂,为什么不可以呢?

#9


最近研究Linq技术 的增删改查的 谁有案例发我一份啊

#10


linq更新,先要 把 数据读出来,再 更改要更新的字段,再 提交
如下:
引用 5 楼 wuyq11 的回复:
linq to sql
using (DbDataContext db = new DbDataContext())  
{  
var editStudent = db.Students.SingleOrDefault<Student>(s=>s.ID == id);  
editStudent.Name = "aaa";  
db.SubmitChanges();  
}  
……

#11


没有where 条件 。
修改还是删除 都要根据一个唯一值找到在sub事件才有用

#12


应该是没 提交的原因 SubmitChanges()

#13


SubmitChanges()

#14


引用 3 楼 sakurapurple 的回复:
引用楼主 sakurapurple 的回复:
开发语言:C#
开发模式:WindowsForm
问题:用DataGridView显示数据,并有增删改功能,但是更新后的数据只能昙花一现,再点一下显示数据就没了,数据库中叶没有发生过改变
我是菜鸟一只,最近研究Linq技术,请高手帮帮忙呀~

问题补充:
代码如下:
                经办人表 经办人表对象 = new ……

你这是添加吧。更新有条件吗

#15


LINQ 不是 SQL,
必须先把数据对象抽出来,
再更新,
然后提交!!

不能在抽对象的同时更新!!

注意多看看LINQ的基础说明

#16


不知道是不是因为你定义两次HspDataDataContext的原因?插入的时候用hspdb,读取的时候重新定义了个hs?也不知道你其他部分什么样的~

#17


看了你的那个使用LINQ to SQL向数据库添加记录的做法,非常符合微软一再强调规范。按道理说应该是能够被成功添加到数据库的。不过,数据库既然没有保存你所添加的数据记录,这很可能是根本就没有向数据库发送添加数据的SQL命令。而目前我的推测是,很可能你的那个【经办人表】实体类里面根本就没有设置任何的主键属性。你注意看看是不是这样呢?如果没有设置主键属性的话,那就只能读取数据,而不能进行增删改的操作。