我如何知道数据库中是否存在特定数据?例如如果数据库已在表中包含“Student_Id”和“Course_Id”,则更新记录,否则插入记录。
我已经有一个控制器操作,我用它来插入数据,但我想添加一个额外的功能,它检查数据库(SQL Server)并根据记录是否存在或现在插入/更新。< / p>
我使用Linq to SQL来插入数据。
提前致谢
答案 0 :(得分:2)
因为你使用LinqToSql我会做类似的事情
var item = (from c in dataContext.TableName
where c.StudentID == your_sid && c.CourseID== your_course_id
select c).FirstOrDefault();
if(item==null)
{
//insert the record
}
else
{
//update the record
}
答案 1 :(得分:1)
在添加数据之前,您可以通过简单的select语句检查数据是否存在。
bool exists = yourTable.Any(row => row.StudentID == studentId && row.CourseID = courseID);
理想情况下,您应该设计数据库以使Student_Id
和Course_Id
成为此表的组合唯一键,因此如果记录已经存在,您的代码将无法添加它们那里。
正如Maess所问,这些价值是如何产生的?您的选项可能会更改,具体取决于数据是否是用户生成的。例如;如果您有两个下拉框来选择学生和课程,请不要让用户选择学生已经开始的课程。
答案 2 :(得分:0)
尝试使用.FirstOrDefault()
获取记录,如果为null,则插入,然后更新值和.SubmitChanges()
。