2009-03-21 5 views
3

A) public void GetEmployee (int EmployeeID);Propriété ConvertEmptyStringToNull

<asp:ObjectDataSource SelectMethod=”GetEmployee” …> 
    <SelectParameters> 
    <asp:ControlParameter Name = ”EmployeeID” ...> 
    </SelectParameters> 


Si, pour quelque raison que ce paramètre est NULL EmployeeID, ObjectDataSource convertira Null à zéro et il est passé comme argument à GetEmployee() méthode . Pourquoi l'exécution effectue-t-elle une telle conversion? Pourquoi? Ne pas lancer une exception aurait-il plus de sens?

B) « Utilisez la propriété ConvertEmptyStringToNull pour spécifier si une valeur de chaîne vide est automatiquement convertie en NULL lorsque les données champ est mis à jour dans la source de données. »
Je ne comprends pas tout à fait la utilité de cette propriété. Pourquoi la chaîne vide indiquerait-on que nous voulons que null soit inséré dans le champ de données de la source? Je suppose que ce champ de données est de type String? Puis pourquoi ne pas avoir aussi ConvertZeroInt32ToNull etc?

bye

Répondre

5

A) Il apparaît que l'ODS génère la valeur par défaut pour nulle de Type T. Dans le cas d'un entier, la valeur par défaut est 0.

B) Il n'y a pas manière en HTML pour représenter une valeur nulle via une balise d'entrée. Lorsqu'une chaîne vide est transmise à une ODS et que Convert Empty to Null est définie sur true, une valeur nulle sera définie. Il n'existe aucune propriété ConvertZeroToNull car toutes les données de zone de texte d'un formulaire HTML ou Windows sont de type chaîne.

+0

Mais le lancement d'une exception n'aurait-il pas plus de sens? – SourceC

+0

En lançant une exception plus logique, je fais référence à la question A – SourceC

+0

Je ne suis pas sûr qu'une exception soit la meilleure option. S'il y a un cas où le paramètre est facultatif, alors null -> default pourrait être la meilleure méthode de gestion. Je n'ai pas travaillé avec un ODS depuis très longtemps, donc d'autres pourraient mieux commenter cela. – andleer