C# 如何检查ID是否存在?
我正在使用3个表,管理员在其中输入以下记录:C# 如何检查ID是否存在?,c#,asp.net,sql,linq-to-sql,C#,Asp.net,Sql,Linq To Sql,我正在使用3个表,管理员在其中输入以下记录: 学生信息 课程信息 给学生分配课程 现在,当我想把课程分配给学生时,我想检查两件事 学生Id存在 课程Id存在 然后在这些检查之后,课程分配就完成了 由于某种原因,我想不出任何逻辑,所以这就是为什么我在这里问这个问题 protected void btnAssignStudents_click(object sender, EventArgs e) { StudentDataContext db = new StudentDataConte
- 学生Id存在
- 课程Id存在
protected void btnAssignStudents_click(object sender, EventArgs e)
{
StudentDataContext db = new StudentDataContext();
StudentCourse assigncourse = new StudentCourse();
assigncourse.Course_Id = txtCourse_Id.Text;
assigncourse.Student_ID = txtStudentID.Text;
db.StudentCourses.InsertOnSubmit(assigncourse);
db.SubmitChanges();
}
在提交更改之前,我希望应用这些检查
我真正想做的是检查分配课程的情况是
- 课程是否存在,如果不存在,则返回一些消息
- 如果学生ID存在,则返回一些消息
如果两者都存在,则完成作业。假设您的
课程Id
和学生Id
为varchar
或nvarchar
,单位为db:
protected void btnAssignStudents_click(object sender, EventArgs e)
{
StudentDataContext db = new StudentDataContext();
StudentCourse assigncourse = new StudentCourse();
var course = db.Course.Where(cr=>cr.Course_Id == txtCourse_Id.Text).ToList();
var student = db.Student.Where(st=>st.Student_ID == txtStudentID.Text).ToList();
if(course != null && course.Length > 0 && student != null && student.Length > 0)
{
assigncourse.Course_Id = txtCourse_Id.Text;
assigncourse.Student_ID = txtStudentID.Text;
db.StudentCourses.InsertOnSubmit(assigncourse);
db.SubmitChanges();
}
}
试试这个
更新:
我不知道你的要求是什么。但我想有一件事
保存之前,需要检查学生和核心表中是否存在id,以及学生核心表中是否不存在这些id
如果我是对的话。您需要合并我的和@peri答案
protected void btnAssignStudents_click(object sender, EventArgs e)
{
int CourseId=Convert.ToInt32(txtCourse_Id.Text);
int StudentID=Convert.ToInt32(txtStudentID.Text);
StudentDataContext db = new StudentDataContext();
StudentCourse assigncourse = new StudentCourse();
var _studentcourse = db.StudentCourse.Where(sc=>sc.Course_Id == CourseId && sc.Student_ID == StudentID).FirstOrDefault();
if(_studentcourse != null && (db.Courses.Any(c => c.Course_Id == CourseId
&& db.Students.Any(s => s.Student_Id ==StudentID) )
{
assigncourse.Course_Id =CourseId;
assigncourse.Student_ID = StudentID;
db.StudentCourses.InsertOnSubmit(assigncourse);
db.SubmitChanges();
}
}
否则,只有在保存之前,您才需要检查学生核心表中是否不存在这些id
你需要这个密码
protected void btnAssignStudents_click(object sender, EventArgs e)
{
int CourseId=Convert.ToInt32(txtCourse_Id.Text);
int StudentID=Convert.ToInt32(txtStudentID.Text);
StudentDataContext db = new StudentDataContext();
StudentCourse assigncourse = new StudentCourse();
var _studentcourse = db.StudentCourse.Where(sc=>sc.Course_Id == CourseId && sc.Student_ID == StudentID).FirstOrDefault();
if(_studentcourse != null )
{
assigncourse.Course_Id =CourseId;
assigncourse.Student_ID = StudentID;
db.StudentCourses.InsertOnSubmit(assigncourse);
db.SubmitChanges();
}
}
你真的知道有
db.Students
和c.Id
?他没有显示他所有的代码。所以我猜。问题清楚地提到他到底想要什么:ObjectStudentCourse
有Course\u Id
和Student\u Id
,所以问题需要检查相同。我认为Id不是字符串(因为任何人都不在字符串中赋值,所以它应该是int值),我们可以使用ORM概念来实现这一点task@RameshRajendran什么是ORM概念?这是OP提供的代码,所以为什么要否决投票?这些id的数据类型是什么?如果你使用int,请检查我的答案。你想检查作业是否已经存在,或者指定id的学生和课程是否都存在?你仍然没有解释你想要实现什么。是否要检查ID是否存在或此分配是否已存在?好的,但为什么不进行投票,请标记为答案。我们不是在一个多小时前已经回答了你的问题吗?你必须在其中一个建议答案上标出答案。如果不是你的工作,就评论一下。若这个问题有助于解决你们的问题,你们也可以投票表决。
protected void btnAssignStudents_click(object sender, EventArgs e)
{
int CourseId=Convert.ToInt32(txtCourse_Id.Text);
int StudentID=Convert.ToInt32(txtStudentID.Text);
StudentDataContext db = new StudentDataContext();
StudentCourse assigncourse = new StudentCourse();
var _studentcourse = db.StudentCourse.Where(sc=>sc.Course_Id == CourseId && sc.Student_ID == StudentID).FirstOrDefault();
if(_studentcourse != null )
{
assigncourse.Course_Id =CourseId;
assigncourse.Student_ID = StudentID;
db.StudentCourses.InsertOnSubmit(assigncourse);
db.SubmitChanges();
}
}