如何知道数据库中是否存在特定记录?

时间:2011-12-05 17:18:56

标签: c# sql-server asp.net-mvc linq-to-sql

我如何知道数据库中是否存在特定数据?例如如果数据库已在表中包含“Student_Id”和“Course_Id”,则更新记录,否则插入记录。

我已经有一个控制器操作,我用它来插入数据,但我想添加一个额外的功能,它检查数据库(SQL Server)并根据记录是否存在或现在插入/更新。< / p>

我使用Linq to SQL来插入数据。

提前致谢

3 个答案:

答案 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_IdCourse_Id成为此表的组合唯一键,因此如果记录已经存在,您的代码将无法添加它们那里。

正如Maess所问,这些价值是如何产生的?您的选项可能会更改,具体取决于数据是否是用户生成的。例如;如果您有两个下拉框来选择学生和课程,请不要让用户选择学生已经开始的课程。

答案 2 :(得分:0)

尝试使用.FirstOrDefault()获取记录,如果为null,则插入,然后更新值和.SubmitChanges()