У меня есть строго типизированная DataTable в моем приложении, которая генерируется с помощью пары соединений SQL. Я использую его для отображения данных в удобочитаемом виде. Вот SQL, который делает это:
SELECT tblEvents.EventName, vwAllMembers.LASTNAME AS LastName, vwAllMembers.FIRSTNAME AS FirstName, tblEventOccurences.EventOccurenceDate,
tblAttendance.AttendanceID, tblAttendanceTypes.Description AS AttendanceType, tblAttendanceTypes.Abbreviation AS AttendanceTypeAbbrv,
tblAttendance.EventOccurenceID, tblAttendance.StudentID, tblAttendance.AttendanceTypeID
FROM tblAttendance INNER JOIN
tblEventOccurences ON tblAttendance.EventOccurenceID = tblEventOccurences.EventOccurenceID INNER JOIN
tblEvents ON tblEventOccurences.EventID = tblEvents.EventID INNER JOIN
vwAllMembers ON vwAllMembers.Id = tblAttendance.StudentID INNER JOIN
tblAttendanceTypes ON tblAttendance.AttendanceTypeID = tblAttendanceTypes.AttendanceTypeID
WHERE tblAttendance.EventOccurenceID=@EventOccurenceID
Я хочу добавить новую строку в эту таблицу данных в VB. Если бы я вставлял напрямую в БД в SQL, я бы просто добавил поля EventOccurenceID, StudentID и AttendanceTypeID в таблицу tblAttendance. Когда я пытаюсь добавить только эти значения в VB, я получаю сообщение об ошибке из моего DataTable, что столбец EvenName не может быть нулевым (и я также предполагаю, что все остальные столбцы).
Вот мой VB:
Dim AttendanceTable As DAL.Attendance.AttendanceDataTable = AttendanceAdapter.ByEventOccurenceID(EventOccurenceID)
Dim NewAttendanceRecord As AttendanceRow = AttendanceTable.NewAttendanceRow()
NewAttendanceRecord.EventOccurenceID = EventOccurenceID
NewAttendanceRecord.StudentID = StudentID
NewAttendanceRecord.AttendanceTypeID = AttendanceTypeID
AttendanceTable.Rows.Add(NewAttendanceRecord)