C# 无法强制转换类型为';系统。单个';输入';System.Double'';

C# 无法强制转换类型为';系统。单个';输入';System.Double'';,c#,sql,database,entity-framework,C#,Sql,Database,Entity Framework,我目前正在编写一个跟踪特定股票的小应用程序,我有一个包含股票数据的db,并希望将其输出到WPF数据网格,但我得到以下错误: 无法将“System.Single”类型的对象强制转换为“System.Double”类型 请原谅我糟糕的编码技巧,因为我已经有好几年没有这样做了,我查看了内部异常,但它只显示null 公共部分类主窗口:窗口 { 公共主窗口() { 初始化组件(); 使用(AppDbContext db=new AppDbContext()) { StockGrid.ItemsSource

我目前正在编写一个跟踪特定股票的小应用程序,我有一个包含股票数据的db,并希望将其输出到WPF数据网格,但我得到以下错误:

无法将“System.Single”类型的对象强制转换为“System.Double”类型

请原谅我糟糕的编码技巧,因为我已经有好几年没有这样做了,我查看了内部异常,但它只显示null

公共部分类主窗口:窗口
{
公共主窗口()
{
初始化组件();
使用(AppDbContext db=new AppDbContext())
{
StockGrid.ItemsSource=db.LowFloatStocks.ToList();
}
}
}
}
Stock.cs

#地区第1天开放变量
私有int stockId;
私有字符串股票行情器;
私人双重开放价格;
私人双尖峰;
私人双高;
私人双低;
私人双闭环价格;
私人双收益率;
私人双间隙;
私人部门双倍增长;
私人双低百分比;
私人双百分比;
私人字符串绿色存储;
私有字符串redToGreen;
私有字符串关闭sequaltopen;
私人字符串关闭;
私人双门闭门;
私人双闭门;
私有串催化剂;
私人双股;
私有字符串稀释;
#端区
#区域第2天开放变量
私人双日开放;
//私人十进制day2Spike;
私人双天高;
私人双日2小时;
私人双日票;
私人双日警觉;
私人双日2%高;
私人双日工资2%;
私人双倍工作日百分比;
私有字符串day2GapUp;
私有字符串day2GapDown;
私有字符串day2被选中;
私有字符串day2RedGreen;
私有字符串Day2CloseSequalopen;
私有字符串day2已关闭;
私人双日2闭式高;
私人双日2闭馆;
SQL

创建表[dbo]。[LowFloatStocks](
[Id]INT不为空,
[日期]日期不为空,
[Ticker]NCHAR(10)不为空,
[ClosingPrice]不允许为空,
[OpeningPrice]不允许为空,
[GainPercent]AS(round(([High]-[OpeningPrice])/[OpeningPrice],(4))*(100.0))保持为非空,
[GapPercent]AS(round(([OpeningPrice]-[ClosingPrice])/[ClosingPrice],(4))*(100.0))保持为非空,
[Spike]实际值不为空,
[1stSpike%]作为(round(([Spike]-[OpeningPrice])/[OpeningPrice],(4))*(100.0))持续不为空,
[高]实际值不为空,
[HighPercent]AS(round(([High]-[ClosingPrice])/[ClosingPrice],(4))*(100.0))保持为非空,
[低]实际值不为空,
[LowPercent]AS(round(([Low]-[ClosingPrice])/[ClosingPrice],(4))*(100.0))保持为非空,
[1stClose]实值不为空,
[ClosePercent]作为(舍入([1stClose]-[ClosingPrice])/[ClosingPrice],(4))*(100.0))持续不为空,
[greenToRed]NCHAR(3)不为空,
[redToGreen]NCHAR(3)不为空,
[ClosesSequalOpen]NCHAR(3)不为空,
[关闭]NCHAR(3)不为空,
[ClosevHigh]AS(round(([High]-[1stClose])/[1stClose],(4))*(100))保持为非空,
[ClosevOpen]AS(round(([OpeningPrice]-[1stClose])/[OpeningPrice],(4))*(100.0))保持为非空,
[Catalyst]NVARCHAR(50)不为空,
[Float]十进制(18)不为空,
[稀释]NCHAR(3)不为空,
[Day2Open]实际值不为空,
[day2gapPercent]AS(round([Day2Open]-[1stClose])/[1stClose],(4))*(100.0))保持为非空,
[Day2High]实际值不为空,
[day2HighPercent]AS(舍入([Day2High]-[1stClose])/[1stClose],(4))*(100))保持为非空,
[Day2Low]实际值不为空,
[Day2LowPercent]作为(舍入(([Day2Low]-[1stClose])/[1stClose],(4))*(100.0))保留为非空,
[Day2Close]实际值不为空,
[Day2ClosePercent]作为(舍入([Day2Close]-[1stClose])/[1stClose],(4))*(100.0))持续不为空,
[Day2GapUp]NCHAR(3)不为空,
[Day2GapDown]NCHAR(3)不为空,
[Day2GreenToRed]NCHAR(3)不为空,
[Day2RedToGreen]NCHAR(3)不为空,
[Day2CloseSequalOpen]NCHAR(3)不为空,
[Day2CloseRed]NCHAR(3)不为空,
[Day2ClosevHigh]作为(圆形([Day2Open]-[Day2High])/[Day2Open],(4))*(100.0))持续不为空,
[Day2ClosevOpen]作为(圆形(([Day2Open]-[Day2Close])/[Day2Open],(4))*(100.0))持续不为空,
主键群集([Id]ASC)
);

要么将所有数据库类型从
REAL
更改为
FLOAT
,要么将C类型从
double
更改为
FLOAT

DBType REAL is float in C#
DBType FLOAT is double in C#

请分享一份。真实的不是双重的。真正的是浮动。为了隔离问题,请拆分代码行:首先将数据放入本地列表,然后将该列表分配给数据网格。错误仍然发生在db行上吗?当我编写sql时,它出于某种原因自动更改了它OK,所以我将c#types更改为float,现在它说“无法强制转换类型的对象”System.Double“到类型”System.Single。“那么。。。你把DB类型改成了float,把C类型也改成了float?您不应该同时执行这两项操作。好的,DBTypes是REAL,而C#types是float?您能告诉我们实体以及引发异常的确切位置吗。你还有一个