C# 如何知道数据库中是否存在特定记录?
我如何知道数据库中是否存在特定数据?例如,如果数据库表中已有“学生Id”和“课程Id”,则更新记录,否则插入记录 我已经有了一个用于插入数据的控制器操作,但我想添加一个附加功能,用于检查数据库(SQL Server),并根据记录是否存在或现在进行插入/更新 我使用LINQtoSQL插入数据C# 如何知道数据库中是否存在特定记录?,c#,sql-server,asp.net-mvc,linq-to-sql,C#,Sql Server,Asp.net Mvc,Linq To Sql,我如何知道数据库中是否存在特定数据?例如,如果数据库表中已有“学生Id”和“课程Id”,则更新记录,否则插入记录 我已经有了一个用于插入数据的控制器操作,但我想添加一个附加功能,用于检查数据库(SQL Server),并根据记录是否存在或现在进行插入/更新 我使用LINQtoSQL插入数据 提前感谢在添加数据之前,您可以通过简单的select语句检查数据是否存在 bool exists = yourTable.Any(row => row.StudentID == studentId &a
提前感谢在添加数据之前,您可以通过简单的select语句检查数据是否存在
bool exists = yourTable.Any(row => row.StudentID == studentId && row.CourseID = courseID);
理想情况下,您应该设计数据库,使Student\u Id
和Course\u Id
成为此表的组合唯一键,这样,如果记录已经存在,您的代码将无法添加它们
正如Maess所问,这些价值是如何产生的?根据数据是否由用户生成,您的选项可能会更改。例如如果您有两个下拉框来选择学生和课程,则不允许用户选择该学生已经在学习的课程。在添加数据之前,您可以通过简单的select语句检查数据是否存在
bool exists = yourTable.Any(row => row.StudentID == studentId && row.CourseID = courseID);
理想情况下,您应该设计数据库,使Student\u Id
和Course\u Id
成为此表的组合唯一键,这样,如果记录已经存在,您的代码将无法添加它们
正如Maess所问,这些价值是如何产生的?根据数据是否由用户生成,您的选项可能会更改。例如如果您有两个下拉框来选择一个学生和一门课程,则不允许用户选择该学生已经在学习的课程。因为您使用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
}
因为您使用了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
}
尝试使用
.FirstOrDefault()
获取记录,如果为null,则插入,然后更新值和.SubmitChanges()
尝试使用.FirstOrDefault()
获取记录,如果为null,则插入,然后更新值和.SubmitChanges()
学生id和课程id是如何生成的?请查看此stackoverflow答案[如果sql to linq中存在语句][1][1]:@Maess它们是由不同的系统生成的。它们都不是主键。学生id和课程id是如何生成的?请查看此stackoverflow答案[if exists statement in sql to linq][1][1]:@Maess它们是由不同的系统生成的。它们都不是主键。Any
也接受谓词。使Where
冗余。Any
也采用谓词。使中的冗余。