我如何知道特定数据是否存在于数据库中?例如,如果数据库的表中已经有"Student_Id“和"Course_Id”,则更新记录,否则插入记录。
我已经有了一个用于插入数据的控制器操作,但我想添加一个附加功能,它将检查数据库(SQL Server),并根据记录是否存在或现在执行插入/更新。
我使用Linq to SQL来插入数据。
提前感谢
发布于 2011-12-06 01:22:02
在添加数据之前,您可以通过一个简单的语句检查数据是否存在。
bool exists = yourTable.Any(row => row.StudentID == studentId && row.CourseID = courseID);不过,理想情况下,您应该将数据库设计为使Student_Id和Course_Id成为该表的组合惟一键,这样,如果记录已经存在,您的代码将根本无法添加它们。
正如Maess所问的,这些值是如何生成的?根据数据是否是用户生成的,您的选项可能会发生变化。例如,如果您有两个用于选择学生和课程的下拉框,则不允许用户选择该学生已经选择的课程。
发布于 2011-12-06 01:23:05
由于您使用的是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
}发布于 2011-12-06 01:26:37
尝试使用.FirstOrDefault()获取记录,如果为null,则插入,然后更新values和.SubmitChanges()。
https://stackoverflow.com/questions/8389183
复制相似问题