n'a pas pu être réglé à un Système.Décimal valeur. Vous devez définir cette propriété sur une valeur non nulle de type 'System.Double'
Salut, je suis en utilisant mvc exemple, pour obtenir des données à partir d'une base de données. Ici j'ai eu une erreur
Détails De L'Exception: System.InvalidOperationException: Le "numéro"
bien sur "Employé" n'a pas pu être réglé à un Système.Décimal valeur.
Vous devez définir cette propriété sur une valeur non nulle de type
'Système.Double".Description: Une exception non gérée s'est produite lors de l'exécution de
la demande web actuelle. Veuillez consulter la trace de la pile pour plus d'
informations sur l'erreur et où elle a son origine dans le code.
Veuillez voir mon code ici, j'ai eu d'erreur ci-dessus.
public ActionResult Details(int id)
{
EmployeeContext empcon = new EmployeeContext();
Employee employ = empcon.employees.Single(emp => emp.empid == id);
return View(employ);
}
Routiconfig
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
RouteTable.Routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "emp", action = "Details",
id = UrlParameter.Optional }
);
}
quoi d'autre avez-vous besoin? votre message d'erreur dit clairement qui de la propriété dans laquelle l'entité est définie pour ce type incorrect.
Quel est le type de l'
Semble que vous en avez une incompatibilité de types, un
Ma question est de savoir Où j'ai fait erreur, je n'ai,t trouver, comment les corriger au-dessus de eror et ma db est de type int et de passage de type int
je n'utilise aucune valeur décimale, mais pourquoi il est d'avoir d'erreur, je n'ai pas compris
Quel est le type de l'
number
propriété de votre classe d'Employés? Quel est le type de la colonne correspondante dans la table sql?Semble que vous en avez une incompatibilité de types, un
double
est prévu pour le bien number
où vous êtes à l'aide d'un decimal
.Ma question est de savoir Où j'ai fait erreur, je n'ai,t trouver, comment les corriger au-dessus de eror et ma db est de type int et de passage de type int
je n'utilise aucune valeur décimale, mais pourquoi il est d'avoir d'erreur, je n'ai pas compris
OriginalL'auteur stpdevi | 2014-01-06
Vous devez vous connecter pour publier un commentaire.
Je pense qu'il pourrait être en raison de la valeur null d'une tentative de conversion à être stockées en double.
Changer votre
double
àPour plus d'explications, veuillez consulter le lien ci-dessous:
http://msdn.microsoft.com/en-us/library/2cf62fcy.aspx
Merci!
OriginalL'auteur Hatjhie
Il est peut-être le problème de DB ,de mon expérience, j'ai eu cette exception parce que je utiliser les données à partir de la banque de la procédure (générer un objet de la classe à l'aide de entity framework)
qu'un certain nombre de champ dans ma SP je la fourniture d'un contrat de données comme ceci
donc dans mon code(après entité cadre de générer de la classe) j'ai eu de la classe qui contiennent
mais lorsque j'exécute mon code cette erreur arrive
c'est parce que dans mon SP il y a un cas où la condition que je revienne de mon résultat de ce genre, de sorte que le type de données de retour d'incompatibilité.
Si vous ne lancez pas/convertir le résultat
0 ->il sera considéré comme Int32 (0.00-> vu qu'en Décimal ,)
OriginalL'auteur user3682728
Utilisation
ou
lien
OriginalL'auteur Nagaraj S
Dans mon cas c'était un problème de la vue, pour renvoyer une valeur lorsqu'il existe une valeur null.
Avait quelque chose comme "ISNULL(dbo.STOCK_ITEMS.STDCOST, 0) COMME STDCOST"
N'a pas de travail.
Essayé "ISNULL(dbo.STOCK_ITEMS.STDCOST, 0.0) STDCOST"
N'a pas trop de travail, mais la suite travaillé...
Tous aujourd'hui....
OriginalL'auteur ShaunOReilly
Dans mon cas, le problème était dans le mauvais DB type de colonne - qui a été numérique et de la propriété a été long. Donc j'ai juste besoin de recréer une colonne comme bigint.
OriginalL'auteur Jan Matousek
J'ai rencontré l'semblables questions, a dit " ne pouvait pas être réglé à une 'Virgule' valeur. Vous devez définir cette propriété sur une valeur non nulle de type "Int32'." pour une colonne. et je recherche la whold solution, je ne définir cette colonne de type Int dans la solution. Mais dans la base de données, il a été fixé comme de l'argent, au lieu de int. j'ai donc changé dans le niveau de base de données. et il fonctionne.
OriginalL'auteur Penny
J'étais dans une situation où j'ai été incapable de changer le type de la colonne dans la table (le grand projet, de nombreuses dépendances).
J'ai eu une Vue de l'alimentation des données dans une définition de Classe, similaire à ceci:
Ici, mon ID est de type int, mais a été consommée comme type chaîne de caractères. Pour résoudre ce problème, j'ai plutôt construit mon point de Vue, comme ceci:
Simplement tuck CONVERTIR dans autour de la problématique de type et il sera de retour que le type spécifié. Dans mon cas, NVARCHAR.
OriginalL'auteur SauerTrout
Une virgule dans le SQL n'est pas le même que les décimales .Net. Si vous regardez le tableau de SqlDbType Énumération, vous trouverez que SQL décimal est équivalente au double de type.
De C# Références
OriginalL'auteur habib
Dans mon cas changé le code de flotteur? pour le double? & ça fonctionne.
ma table de base de données de la colonne est de type float.
OriginalL'auteur J Sushil