C# 如何检查ID是否存在?

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

我正在使用3个表,管理员在其中输入以下记录:

  • 学生信息
  • 课程信息
  • 给学生分配课程
  • 现在,当我想把课程分配给学生时,我想检查两件事

    • 学生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
    ?他没有显示他所有的代码。所以我猜。问题清楚地提到他到底想要什么:Object
    StudentCourse
    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();
                }
            }