2014-01-04 8 views
0

Я работаю с 3-х таблиц, в которых администратор вводит записи для:Как проверить, существует ли идентификатор?

  1. студенческой информации
  2. Информация о курсе
  3. Назначение курса студентам

Теперь, когда я хочу, чтобы назначить Конечно, студенту я хочу проверить две вещи.

  • Student 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

Что я точно хочу, чтобы проверить назначение курса является то, что

  • Курс существует или нет, если не возвращать какое-то сообщение.
  • Если идентификатор студента существует, если не возвращено какое-либо сообщение.

Если оба существуют, то выполните задание.

+0

Что тип данных используется для этих идентификаторов? если вы использовали int, пожалуйста, проверьте мой ответ. –

+0

Вы хотите проверить, существует ли уже существующее назначение, если существуют оба студента и курс с указанным идентификатором? –

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

Действительно вы знаете, что существуют 'db.Students' и' c.Id'? –

+0

Он не показывал свой код. Поэтому я догадался. –

+0

Вопрос о том, что именно он хочет: Объект 'StudentCourse' имеет' Course_Id' и 'Student_ID', для чего требуется проверка того же вопроса. –

-1

Course_Id Если предположить, что и Student_ID являются varchar или nvarchar в дб:

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

попробовать этот

Update:

Я не уверен, что ваше требование. но я угадываю одну вещь

вам нужно проверить идентификатор, если существует студент и базовая таблица, и эти идентификаторы не существуют в таблице ключевых слов ученика перед сохранением.

Если я прав. вам необходимо объединить мои и @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(); 
     } 
    } 

еще нужно проверить, если эти идентификаторы не существуют в основной таблице Стьюдента только Befor сохранить

Вам нужно этот код

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(); 
      } 
     } 
Смежные вопросы