在我的数据库中,我具有NextStatDistanceTime值作为浮点数。执行“ float time = reader.GetFloat(0);
”行时,出现错误
系统无效的强制转换异常
如何在此代码中从sql命令获取浮点值?
这是我的代码:
using (SqlConnection conn = new SqlConnection(@"<myconnectionstring>"))
{
float totaltime = 0;
for (int i = startStationIndex; i < endStationIndex; i++)
{
SqlCommand command = new SqlCommand("SELECT NextStatDistanceTime FROM [MetroDatabase].[dbo].[MetroStation] WHERE StationIndex = " + i + "", conn);
try
{
conn.Open();
command.ExecuteNonQuery();
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
float time = reader.GetFloat(0);
totaltime = totaltime + time;
conn.Close();
}
}
}
catch (Exception ex)
{
result = ex.Message;
Console.WriteLine(ex.Message);
}
}
}
我想是时候放一张桌子了。
T-SQL类型名称 | 相当于.NET | C#类型名称 | `DataReader` 方法 |
---|---|---|---|
`FLOAT` | `System.Double` | `double` | `IDataReader.GetDouble()` |
`REAL` | `System.Single` | `float` | `IDataReader.GetFloat() ` |
请注意,GetFloat
名称有误-应该为GetSingle
,因为float
它是C#特定的名称。例如,在VB.NET中没有任何意义。
因此,如果您的数据库列属于类型FLOAT
,请使用GetDouble
而不是进行读取GetFloat
。数据读取器方法 不
执行转换;有一种通用的GetValue
方法来获取的值,object
然后您可以将其进一步转换。
顺便说一句,这不是唯一的精妙之处-.NET浮点类型支持非规范化值,而T-
SQL类型不支持,因此,您的.NET代码中可能会有无法将浮点数包含在内的情况。成功地存储在数据库中,即使类型匹配。
我在学习如何使用java 8流时,发现了一些奇怪的事情。 <代码>数组。stream()具有除浮点数组之外的所有方法: <代码>数组。流(int[]):int流 同样,有int、双精度等的Stream实现,但没有浮点数: 有什么原因吗? 使用浮动流的推荐方法是什么?
问题内容: 我有一个像 从上面的字符串中,我需要获取一个值。 当我使用替换所有功能。 当字符串有两个点时,这将不起作用。 浮点值的位置可能有所不同。 问题答案: 首先丢弃所有非float字符,然后像这样隐秘给Float:
我有像0.152545这样的浮点值,我只想要0.1f。< br >这怎么可能..< br >通过使用String,我获得了字符串值。下面的代码显示了结果。 这给了我字符串值,如0.1f,但我只想要浮点值,如0.1f。
我正在使用简单的查询从数据库中检索用户信息。 然后,我尝试获取一个名为isconfired的列(在数据库中表示为位类型列)的值,并将其转换为bool。 然后我得到一个FormatException错误,指出“输入字符串的格式不正确”。 我看到了一个类似的问题,其答案提供了以下代码: 但这不适用于我的案例,因为我不知道isconfired列的索引,也不想知道它。我想使用列名。
我正在寻找Java的的Python等价物。 我找到了这个python:获取和操纵(作为整数)浮点的位模式,但是有没有人知道一种不那么复杂的方法呢?
问题内容: 我有一个类似的网址: 如何使用jQuery 获取锚点值并将其存储为变量? 问题答案: 您可以使用和,如下所示: 如果其中可能没有,请执行以下检查: 如果这是 当前 页面的URL,则可以使用它来获取它,并根据需要替换。