如何检查ID是否存在?

时间:2014-01-04 10:48:05

标签: c# asp.net sql linq-to-sql

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

  1. 学生资料
  2. 课程信息
  3. 为学生分配课程
  4. 现在,当我想将课程分配给学生时,我想检查两件事。

    • 学生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();
    }
    

    在提交更改之前,我想应用这些检查。

    enter image description here

    我真正想要的是检查分配课程是

    • 课程是否存在,如果没有返回某些信息。
    • 如果学生证存在,如果没有留言。

    如果两者都存在,则完成作业。

3 个答案:

答案 0 :(得分:1)

protected void btnAssignStudents_click(object sender, EventArgs e)
{
    var db = new StudentDataContext();

    // check whether both course and student with specified ID's exist
    // I let you make sure txtCourse_Id.Text and txtStudentID.Text is not null or empty
    if (db.Courses.Any(c => c.Course_Id == txtCourse_Id.Text 
        && db.Students.Any(s => s.Student_Id == txtStudentID.Text)
    {
        var assigncourse = new StudentCourse();
        assigncourse.Course_Id = txtCourse_Id.Text;
        assigncourse.Student_ID = txtStudentID.Text;
        db.StudentCourses.InsertOnSubmit(assigncourse);
        db.SubmitChanges();
    }
}

答案 1 :(得分:-1)

假设db中的Course_IdStudent_IDvarcharnvarchar

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();
    }
}

答案 2 :(得分:-1)

试试这个

<强>更新

我不确定你的要求是什么。但我想有一件事

如果学生和核心表存在,并且在保存之前学生核心表中不存在这些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();
            }
        }