2009-04-08 8 views
1


Si Sql Server renvoie une erreur, alors SqlException doit être lancé. Mais ce n'est pas

Si je lie GridView à SqlDataSource et également mis AutoGenerateEditButton à true, et si je puis essayer de mettre à jour un champ (ce champ étant une clé primaire dans la base de données), puis la base de données doit retourner un erreur et donc SqlException devrait être levée ?! Alors, pourquoi la page ne signale-t-elle pas une exception? Au lieu de cela, tout Gridview remet tous les champs de cette ligne à leurs valeurs d'origine.


Thanx


EDIT:

Bonjour,


Quand j'exécuté même déclaration de mise à jour avec le code suivant, je suis arrivé Impossible de mettre à jour l'identité colu mn 'EmployeeID' exception, donc je suppose Sql Server fait rapport même erreur lorsque GridView a essayé de mettre à jour, mais pour une exception raison n'a pas été soulevée:

 SqlConnection sc = new SqlConnection(); 
     sc.ConnectionString = @"Data source=localhost; integrated security=sspi; initial catalog=northwind;"; 
     SqlCommand sComand = new SqlCommand(); 

     sComand.Connection = sc; 
     sComand.CommandText = "update Employees set EmployeeId=100,FirstName='Suzy',"+ 
        "LastName='Smile',City='Moon' where EmployeeId=1"; 
     sc.Open(); 
     int I = sComand.ExecuteNonQuery(); 


DEUXIÈME EDIT:

Votre propriété DataKeyNames est-elle définie correctement?

J'ai essayé avec réglage DataKeyNames = « EmployeeId », mais exception toujours pas soulevé

+1

Très bonne/utile question, +1 pour la question. –

Répondre

2

Si votre requête SQL renvoie un résultat, puis C# va obtenir ce résultat. Si votre requête SQL renvoie une exception, C# obtiendra cette exception. Vous ne pouvez pas mélanger et assortir ici, ce n'est pas une garde-robe.

2

Une exception sera levée UNIQUEMENT si la gravité ERROR dans T-SQL est égale ou supérieure à 16 AFAIK. Toutes les erreurs ne sont donc pas les mêmes dans SQL Server.

2

Vous devriez être en mesure de modifier la clé primaire sans erreur, à condition qu'il n'y ait pas de doublon.

Questions connexes