Ajuda - Busca - Membros - Calendário
Versão Completa: (Resolvido) Problemas de Chaves Estrangeiras com BD sql
Fórum Script Brasil > Programação & Desenvolvimento > .NET
rizuane
ola pessoal

estou trabalhando num pequeno programa de gestao de consultas medicas e tenho uma base de dados sql com tres tabelas e existe relacoes entre elas:


Quando o programa esta correr e clico no "Update button" recebo este erro:

The INSERT statement conflicted with the FOREIGN KEY constraint "FK_AppointmentsResources_Appointments". The conflict occurred in database "C:\DOCUMENTS AND SETTINGS\NUNEX2\DESKTOP\CONSULTASMEDICAS\BD\SCHEDULERDATA.MDF", table "dbo.Appointments", column 'ID'. The statement has been terminated.



o codigo do botao Update e:

CODE
Private Sub btnUpdate_Click(sender As Object, e As EventArgs)
' save scheduler changes
appointmentsTableAdapter1.Update (schedulerDataDataSet.Appointments)
appointmentsResourcesTableAdapter1.Update (schedulerDataDataSet.AppointmentsResources)
End Sub


o resto do codigo e este:

CODE
AppointmentsTableAdapter1.Fill(SchedulerDataDataSetACCESS.Appointments)
        ResourcesTableAdapter1.Fill(SchedulerDataDataSetACCESS.Resources)
        AppointmentsResourcesTableAdapter1.Fill(SchedulerDataDataSetACCESS.AppointmentsResources)



CODE
' create and assign appointment mapping
        Dim appointmentMappingInfo As New AppointmentMappingInfo()
        appointmentMappingInfo.UniqueId = "UniqueId"
        appointmentMappingInfo.MasterEventId = "MasterEventID"
        appointmentMappingInfo.Start = "Start"
        appointmentMappingInfo.[End] = "End"
        appointmentMappingInfo.Summary = "Summary"
        appointmentMappingInfo.Description = "Description"
        appointmentMappingInfo.Location = "Location"
        appointmentMappingInfo.BackgroundId = "BackgroundID"
        appointmentMappingInfo.StatusId = "StatusID"
        appointmentMappingInfo.RecurrenceRule = "RecurrenceRule"
        appointmentMappingInfo.Resources = "AppointmentsAppointmentsResources"
        appointmentMappingInfo.ResourceId = "ResourceID"
        SchedulerBindingDataSourceACCESS.EventProvider.Mapping = appointmentMappingInfo
SchedulerBindingDataSourceACCESS .EventProvider.DataSource =SchedulerDataDataSetACCESS.Appointments



CODE
' create and assign resource mapping
        Dim resourceMappingInfo As New ResourceMappingInfo()
        resourceMappingInfo.Id = "ID"
        resourceMappingInfo.Name = "Name"
        SchedulerBindingDataSourceACCESS.ResourceProvider.Mapping = resourceMappingInfo
        SchedulerBindingDataSourceACCESS.ResourceProvider.DataSource = SchedulerDataDataSetACCESS.Resources


CODE
' assign mapped binding data source
        RadScheduler1.DataSource = SchedulerBindingDataSourceACCESS



Estou usando Telerik winform Q3 2009, scheduler control.



Alguma ajuda, sugestoes agradecia.
quintelab
Se executar o Update na mão no banco de dados funciona?

Abraços...
rizuane
consegui resolver o erro, o problema estava na coluna ID, que era chave primaria da tabela apontamentos.

troquei a chave primaria para statusID que permitia fazer o "appointmentMappingInfo.StatusId = "StatusID"".

Foi um reurso que usei visto que com a coluna ID, não permitia fazer o "appointmentMappingInfo.Id = "ID"", devido a classe do proprio control, que não permitia editar (são controles de TELERik winform).

obrigado
Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor clique aqui.
Invision Power Board © 2001-2012 Invision Power Services, Inc.