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

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

我如何知道数据库中是否存在特定数据?例如,如果数据库表中已有“学生Id”和“课程Id”,则更新记录,否则插入记录

我已经有了一个用于插入数据的控制器操作,但我想添加一个附加功能,用于检查数据库(SQL Server),并根据记录是否存在或现在进行插入/更新

我使用LINQtoSQL插入数据


提前感谢

在添加数据之前,您可以通过简单的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
也采用谓词。使
中的
冗余。