2009-08-25 7 views
0

J'ai un objet métier que j'ai utilisé, qui a un tas de propriétés et une méthode Save, qui insère/met à jour la base de données. La méthode save n'est PAS status, donc l'objet doit être instancié, et les propriétés de la mise à jour/insertion DB sont extraites de l'objet.Dois-je utiliser des paramètres avec une mise à jour ObjectDataSource?

Maintenant j'essaye de lier l'objet à un FormView avec ObjectDataSource. Je l'ai fonctionné donc instancié basé sur le paramètre QueryString, pas de problème, et remplit les boîtes de texte juste très bien. La méthode UpdateMethod que j'ai définie pour la fonction Save. Maintenant, il reste coincé.

Il semble que ObjectDataSource nécessite une méthode avec tous les champs/propriétés/textboxes comme paramètres. J'aurais pensé qu'il mettrait à jour les propriétés de l'objet et ensuite appeler la fonction Save sans paramètre. Est-ce un vœu pieux? Est-ce que j'ai maintenant besoin de changer ma fonction d'enregistrement pour inclure des paramètres, et changer toutes les instances où il s'habitue à cette nouvelle méthode, juste pour cette raison?

Merci Sean

Répondre

1

Malheureusement, il ne nécessite params.

J'ai surchargé mes méthodes d'insertion/mise à jour pour inclure quelques paramètres. Attachez ObjectDataSource à la méthode avec des paramètres.

La méthode de mise à jour surchargée appelle la méthode de mise à jour d'origine en enregistrant toutes les données. Ça me semble un peu hack, mais ça fonctionne.

 Public Sub Update() 
     Dim isUpdated As Boolean = False 

     sql = "UPDATE AudioFiles SET Title = @Title, [desc] = @desc, Active = @Active WHERE fileID = @fileID" 
     conn = New SqlConnection(connString) 
     conn.Open() 

     ... 

    End Sub 

    Public Sub Update(ByVal upFileID As Integer, ByVal upTitle As String, ByVal upDesc As String, ByVal upActive As Boolean) 
     Dim isUpdated As Boolean = False 
     Dim audioFile As New AudioFiles(fileID) 

     If Len(upTitle) > 0 Then 
      _title = title 
     End If 

     ... 

     audioFile.Update() 

    End Sub 
Questions connexes