2009-11-16 4 views
0

Je ne peux pas rollback en utilisant le code suivant et besoin d'aide:Rollback dans IronPython en utilisant System.Data.SqlClient

import clr 
import sys 
clr.AddReference('System.Data') 
from System.Data.SqlClient import SqlConnection, SqlParameter, SqlTransaction 
conn_string = "****" 
connection = SqlConnection(conn_string) 
connection.Open() 
createuser = connection.CreateCommand() 
createuser.CommandText = "****" 
try: 
    reader = createuser.ExecuteReader() 
    reader.Close() 
except: 
    reader.Rollback() 

Merci!

Je comprends maintenant, mais maintenant je vais avoir un problème où l'attend une chaîne, mais je ne peux pas faire les valeurs paramétrées si je mets la chaîne de requête SQL dans comme argument:

createuser.CommandText = "****" 
createuser.Parameters.AddWithValue("@Username", username); 
usertransaction = connection.BeginTransaction(createuser) 
try: 
    usertransaction.Commit() 
except: 
    usertransaction.Rollback() 

Répondre

0

Vous devez commencer une transaction en utilisant la méthode SqlConnection.BeginTransaction(). Vous recevrez un objet de transaction ayant les méthodes Commit et Rollback.

+0

voir ma vérification s'il vous plaît ... merci! – user177215

+0

Désolé, je ne comprends pas .. Vous pouvez sûrement (et devez) utiliser les paramètres dans un scénario donné. Oui, 'DbParameterCollection' n'a pas la méthode' AddWithValue', mais vous pouvez appeler 'CreateParameter' sur votre commande, le configurer (type, nom, direction, valeur, etc) et ensuite l'ajouter' 'Parameters' de la commande. C'est un peu lourd, mais pas dur du tout ... Ou j'ai mal compris et tu as voulu dire autre chose? –