2010-04-02 9 views
0

J'utilise GridView dans asp .net et éditer des données avec la propriété edit de champ de commande (comme nous le savons après la mise à jour de la ligne éditée, nous mettons à jour automatiquement la base de données), et je veux utiliser les transactions déclaration de validation - y compris rollback) pour valider cette requête de mise à jour dans la base de données, après avoir cliqué sur un bouton (après certains événements par exemple), pas automatiquement pour insérer ou mettre à jour directement les données éditées de la grille ... les quelque part temporaires (même nombre de lignes modifiées - pas seulement une rangée) puis de confirmer la transaction - mettre à jour les vraies tables dans la base de données ...mise à jour des lots de données

Toutes les suggestions sont les bienvenus ...

Je l'ai utilisé certains bons liens, mais très utiles, comme: http://www.asp.net/learn/data-access/tutorial-63-cs.aspx http://www.asp.net/learn/data-access/tutorial-66-cs.aspx etc ...

Répondre

1

Bien,

Vous pouvez stocker vos données modifiées dans un DataTable en session. puis passez cette table de données en tant qu'insertion en bloc dans la base de données. 2 options sont disponibles pour cette

  1. si vous utilisez SQL Server 2005, vous pouvez utiliser OpenXML pour y parvenir, comme je l'ai dit here
  2. si vous utilisez SQL Server 2008 youc une des variables de table utilisation comme moi here.

J'espère que cela aide

+0

Merci pour vos suggestions, Aneef! Informations très utiles ... – gaponte69

1

Première façon: Créer une variable de session qui contiendra votre objet DB (objets DataTable ou mis en correspondance). GridView devrait fonctionner avec cette instance au lieu d'envoyer les données à la base de données. Une fois l'édition terminée, vous pouvez prendre l'objet de la session et l'enregistrer comme vous le faites normalement.

Deuxième façon: J'utiliserais javascript pour collecter toutes les modifications du côté client pendant qu'il édite sous la forme d'un tableau d'objets (chaque objet est une ligne distincte). Une fois l'édition terminée, vous pouvez créer une chaîne json à partir de la collection et la transmettre au serveur. Si la configuration de votre objet json est la même que celle de la classe serveur, vous pouvez utiliser JavaScriptSerializer pour désérialiser votre chaîne dans la collection d'objets. Après cela, vous pouvez enregistrer vos objets comme vous le faites normalement.

+0

des explications très claires! Pour les deux sens, j'ai des solutions, et j'accepte comme réponse acceptée, mais malheureusement, je l'ai déjà fait avant de répondre d'abord :) Merci encore une fois! – gaponte69

Questions connexes