Как узнать, есть ли конкретная запись в базе данных? - PullRequest
0 голосов
/ 05 декабря 2011

Как узнать, присутствуют ли определенные данные в базе данных или нет? Например, Если в базе данных уже есть «Student_Id» и «Course_Id» в таблице, обновите запись или вставьте запись.

У меня уже есть действие контроллера, которое я использую для вставки данных, но я хочу добавить дополнительную функцию, где он проверяет базу данных (SQL Server) и выполняет вставку / обновление в зависимости от того, присутствует ли запись или сейчас.

Я использую Linq to SQL для вставки данных.

Заранее спасибо

Ответы [ 3 ]

2 голосов
/ 05 декабря 2011

Поскольку вы используете 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
}
1 голос
/ 05 декабря 2011

Вы могли бы проверить наличие данных с помощью простого оператора выбора до добавления данных.

bool exists = yourTable.Any(row => row.StudentID == studentId && row.CourseID = courseID);

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

Как спросила Месс, как генерируются значения? Ваши параметры могут меняться в зависимости от того, созданы ли данные пользователем или нет Например; если у вас есть два раскрывающихся списка для выбора учащегося и курса, не позволяйте пользователю выбирать курс, который студент уже изучает.

0 голосов
/ 05 декабря 2011

Попробуйте получить запись с .FirstOrDefault(), если ноль, вставить, затем обновить значения и .SubmitChanges().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...