Question de syntaxe....

Question de syntaxe.... - C#/.NET managed - Programmation

Marsh Posté le 27-04-2004 à 18:40:18    

J'ai un probleme de syntaxe avec une affectation de valeur a une procedure stockée:
 
La syntaxe suivante:
 
 
 

Code :
  1. SqlCommand command = new SqlCommand("INSERT_POINT",connection,transaction);
  2. command.CommandType=CommandType.StoredProcedure;
  3. parameter.Value=(this.CodeSecteur == null)?DBNull.Value :this.CodeSecteur;


 
Me conduit a l'erreur suivante lors de la compilation...

Code :
  1. E:\SqlServer\SqlPoint.cs(158): Le type d'expression conditionnelle ne peut pas être déterminé, car il n'existe pas de conversion implicite entre 'System.DBNull' et 'string'


 
or,  en castant "this.CodeSecteur" en object, ca marche:
 

Code :
  1. SqlCommand command = new SqlCommand("INSERT_POINT",connection,transaction);
  2. command.CommandType=CommandType.StoredProcedure;
  3. parameter.Value=(this.CodeSecteur == null)?DBNull.Value :(object)this.CodeSecteur;


 
Mais je ne comprends pas pourquoi etant donné que codeSecteur est un "propertie" string...
 
Quelqu'un a une idée (meme surnaturelle)
 
Cordialement


Message édité par bartleby le 27-04-2004 à 18:42:16
Reply

Marsh Posté le 27-04-2004 à 18:40:18   

Reply

Marsh Posté le 27-04-2004 à 18:56:47    

DBNull.Value :(object)this.CodeSecteur
 
il faut que tes deux valeurs d'affectations conditionelles soient de types apparentées
 
DBNull.Value c'est quoi ?

Reply

Marsh Posté le 27-04-2004 à 19:39:38    

Taz a écrit :

DBNull.Value :(object)this.CodeSecteur
 
il faut que tes deux valeurs d'affectations conditionelles soient de types apparentées
 
DBNull.Value c'est quoi ?


 
C'est la valeur NULL de la bdd, pour pas confondre avec la valeur null de l'application
 
http://forum.hardware.fr/hardwaref [...] 3884-1.htm

Reply

Marsh Posté le 28-04-2004 à 09:39:18    

Désolé, je comprends toujours pas...
 
paremeter.Value attends un object....
 
this.CodeSecteur est un property de type String ( donc herite de 'System.Object')
(System.Object)this.CodeSecteur, est aussi un System.Object
et DBNUll.Value herite egalement de System.Object....
 
Les deux valeurs implementent l'interface System.Object, attendu pour paremeter.Value....
 

Reply

Marsh Posté le 03-05-2004 à 23:42:20    

bartleby a écrit :

Désolé, je comprends toujours pas...
 
paremeter.Value attends un object....
 
this.CodeSecteur est un property de type String ( donc herite de 'System.Object')
(System.Object)this.CodeSecteur, est aussi un System.Object
et DBNUll.Value herite egalement de System.Object....
 
Les deux valeurs implementent l'interface System.Object, attendu pour paremeter.Value....


utilise Convert.DBNull :jap:  
 
à tout de suite [:ddr555]


---------------
༼ つ ◕_◕ ༽つ
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed