none
Problème de base de données.

    Question

  • Bonsoir, j'ai réalisé un petit programme en suivant les conseils de Beth Massy pour afficher une base de données en SQL Server et quand je fais exactement le même programme qu'elle, tout fonctionne par contre quand j'utilise ma base de données ça ne marche pas. Il m'affiche bien la 1ère ligne mais je n'arrive pas à lire le restant de ma table.

    Il me met comme erreur : "L'exception NullReferenceException n'a pas été gérée". Or dans la vidéo de Beth Massy tout fonctionne. Je ne comprend pas. Voici le code.

    Class MainWindow
        Private RealisateurData As New FILMDataSet
        Private taRealisateur As New FILMDataSetTableAdapters.RéalisateurTableAdapter
        Private taManager As New FILMDataSetTableAdapters.TableAdapterManager
        Private View As CollectionView
    
        Private Sub MainWindow_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
            Me.taRealisateur.Fill(Me.RealisateurData.Réalisateur)
            Me.DataContext = Me.RealisateurData.Réalisateur
        End Sub
    
        Private Sub btnFirst_Click(sender As Object, e As RoutedEventArgs) Handles btnFirst.Click
            Me.View.MoveCurrentToLast()
    
        End Sub
    
        Private Sub btnPrevious_Click(sender As Object, e As RoutedEventArgs) Handles btnPrevious.Click
            If Me.View.CurrentPosition > 0 Then
                Me.View.MoveCurrentToPrevious()
            End If
        End Sub
    
        Private Sub btnNext_Click(sender As Object, e As RoutedEventArgs) Handles btnNext.Click
            If Me.View.CurrentPosition < Me.View.Count - 1 Then
                Me.View.MoveCurrentToNext()
            End If
        End Sub
    
        Private Sub btnLast_Click(sender As Object, e As RoutedEventArgs) Handles btnLast.Click
            Me.View.MoveCurrentToLast()
        End Sub
    End Class
    Merci
    vendredi 8 mars 2013 22:57

Réponses

  • Dim GenreViewSource As System.Windows.Data.CollectionViewSource = CType(Me.FindResource("GenreViewSource"), System.Windows.Data.CollectionViewSource)

    Ca y est yooupi !!!! j'ai trouvé. Il fallait tout simplement que je mette ce code dans mes bouton de navigation :

    Un grand merci à tous. bonne fin de journée

    mercredi 13 mars 2013 09:26

Toutes les réponses

  • Voilà mon gros problème c'est la génération du programme se passe sans problème. Par contre quand je veux voir les autres enregistrement de ma base de donnée à l'aide d'un bouton ">" next par exemple je clique dessus et paf une erreur

    L'exception System.NullReferenceException n'a pas été gérée
      HResult=-2147467261
      Message=La référence d'objet n'est pas définie à une instance d'un objet.
      Source=AdventureWorksCustomerEditor
      StackTrace:
           à AdventureWorksCustomerEditor.MainWindow.nextButton_Click(Object sender, RoutedEventArgs e) dans c:\users\fred\documents\visual studio 2010\Projects\AdventureWorksCustomerEditor\AdventureWorksCustomerEditor\MainWindow.xaml.vb:ligne 30
           à System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
           à System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
           à System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
           à System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
           à System.Windows.Controls.Primitives.ButtonBase.OnClick()
           à System.Windows.Controls.Button.OnClick()
           à System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
           à System.Windows.UIElement.OnMouseLeftButtonUpThunk(Object sender, MouseButtonEventArgs e)
           à System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
           à System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
           à System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
           à System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
           à System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
           à System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)
           à System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
           à System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
           à System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
           à System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
           à System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
           à System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
           à System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
           à System.Windows.Input.InputManager.ProcessStagingArea()
           à System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
           à System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
           à System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
           à System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
           à System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
           à MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
           à MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
           à System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
           à MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
           à System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
           à MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
           à MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
           à System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
           à System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
           à System.Windows.Threading.Dispatcher.Run()
           à System.Windows.Application.RunDispatcher(Object ignore)
           à System.Windows.Application.RunInternal(Window window)
           à System.Windows.Application.Run(Window window)
           à System.Windows.Application.Run()
           à AdventureWorksCustomerEditor.Application.Main() dans c:\users\fred\documents\visual studio 2010\Projects\AdventureWorksCustomerEditor\AdventureWorksCustomerEditor\obj\x86\Debug\Application.g.vb:ligne 65
           à System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
           à System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
           à Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
           à System.Threading.ThreadHelper.ThreadStart_Context(Object state)
           à System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
           à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
           à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
           à System.Threading.ThreadHelper.ThreadStart()
      InnerException:

    Et ça avec toutes les base de données créer avec SQL Server. Je ne sais plus quoi faire.

    dimanche 10 mars 2013 00:26
  • Bonjour,

    Votre exception indique que vous essayez d'accéder à un objet qui n'est pas instancié (variable null).

    Votre trace indique que cela vous arrive dans votre l'évènement Click du bouton "nextButton". Je suppose que c'est la méthode "btnNext_Click" qui est liée à cet évènement. Dans cette méthode vous accéder à une variable "View" qui n'est initialisée nulle part dans votre code.

    Si vous avez une CollectionView dans votre XAML soit vous y faites référence au lieu de View, soit vous initialisez View avec cette CollectionView dans votre MainWindow_Loaded. Si vous n'en avez pas alors il faut en instancier une.

    Cordialement,


    Yan Grenier

    lundi 11 mars 2013 08:11
  • Merci beaucoup pour vos réponses. Je vais essayer de reprogrammer tout ça. Encore merci

    lundi 11 mars 2013 13:07
  • Bonjour,

    La variable View semble ne jamais être initialisée et donc on aura une erreur "NullReferenceException" dès que l'on va essayer d'utiliser cet object qui est encore à "Nothing". Il manque sans doute du code...


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    lundi 11 mars 2013 13:22
  • Merci patrice pour votre réponse alors qu'est-ce qu'il est mieux de faire ? Existe-t-il un procédure pour faire défiler mes données ?
    lundi 11 mars 2013 19:40
  • Si c'est bien le cas, il manque sans doute du code. Il serait possible de proposer d'autres approches (par exemple ma préférence personnelle est plutôt d'utiliser "entity framework" dans le but est d'exposer les données sous forme de "vrais" objets .NET) mais plutôt que de changer totalement de direction, je suggérerais plutôt pour l'instant de continuer dans la lancée et de bien vérifier que vous n'avez pas laissé de côté du code. Avez vous bien vérifié toutes les explications ?


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    mardi 12 mars 2013 09:46
  • Mais oui j'ai bien tout suivi dans la vidéo de Beth Massy et toujours ce message alors que m'a base de donnée n'est pas vide. Je ne sais vraiment plus quoi faire. Quand Beth Massy elle clique sur le bouton ">" ça passe au données suivantes. alors pourquoi pas moi. Ca ne vient pas de la base de données quand même. Help

    mardi 12 mars 2013 13:19
  • Dim GenreViewSource As System.Windows.Data.CollectionViewSource = CType(Me.FindResource("GenreViewSource"), System.Windows.Data.CollectionViewSource)

    Ca y est yooupi !!!! j'ai trouvé. Il fallait tout simplement que je mette ce code dans mes bouton de navigation :

    Un grand merci à tous. bonne fin de journée

    mercredi 13 mars 2013 09:26