C# 看看你做了什么,为什么。如果你不这样做,那么从答案中学习是不可能的(或者至少要困难得多)。我已经找到了解决方案,我发布了一个关于它的答案。顺便说一下,非常感谢!一个好的答案不仅仅是提供一段代码,它还解释了您所做的事情以及原因。如果你不这样做,那么从答案中学
C# 看看你做了什么,为什么。如果你不这样做,那么从答案中学习是不可能的(或者至少要困难得多)。我已经找到了解决方案,我发布了一个关于它的答案。顺便说一下,非常感谢!一个好的答案不仅仅是提供一段代码,它还解释了您所做的事情以及原因。如果你不这样做,那么从答案中学,c#,.net,sql-server,casting,type-conversion,C#,.net,Sql Server,Casting,Type Conversion,看看你做了什么,为什么。如果你不这样做,那么从答案中学习是不可能的(或者至少要困难得多)。我已经找到了解决方案,我发布了一个关于它的答案。顺便说一下,非常感谢!一个好的答案不仅仅是提供一段代码,它还解释了您所做的事情以及原因。如果你不这样做,那么从答案中学习是不可能的(或者至少要困难得多)。我已经找到了解决方案,我发布了一个关于它的答案。顺便说一下,非常感谢!我被你的第一句话弄糊涂了。浮点数是一个十进制数。它的显示将取决于您的文化。对我来说,三个半是“3.5”。对于使用,作为十进制分隔符的其他人
看看你做了什么,为什么。如果你不这样做,那么从答案中学习是不可能的(或者至少要困难得多)。我已经找到了解决方案,我发布了一个关于它的答案。顺便说一下,非常感谢!一个好的答案不仅仅是提供一段代码,它还解释了您所做的事情以及原因。如果你不这样做,那么从答案中学习是不可能的(或者至少要困难得多)。我已经找到了解决方案,我发布了一个关于它的答案。顺便说一下,非常感谢!我被你的第一句话弄糊涂了。浮点数是一个十进制数。它的显示将取决于您的文化。对我来说,三个半是“3.5”。对于使用
,
作为十进制分隔符的其他人,它可能是“3,5”。也许我误解了你的意思,我不确定。您还应该解释为什么您认为新代码更好。我看到您使用的是GetDouble
而不是GetValue
。也许你应该在回答中解释一下,为什么你认为这样更好。我从来没有说过这样更好。这是对你的有效解决方案的回答。Float是基于区域性的错误,我将删除它。@Chris GetDouble将按原样获取数据类型。GetValue将值保存在对象中,因此您必须进行转换以使其与您想要的匹配。链接这里:@Chris答案不需要更好。解决问题的方法也很多。我用自己的方式解决了一个问题。如果你想使用GetValue或GetDouble,这是相当有偏见的。我说的“更好”是指与OPs不起作用的代码相比。您已经做了一些您认为可以解决问题的更改,您应该尝试解释它们是什么,而不是仅仅给出一个大的代码块,依靠OP(和其他任何人)查看您的代码,找出您所做的更改,以及为什么原始代码不起作用。我对您的第一行感到非常困惑。浮点数是一个十进制数。它的显示将取决于您的文化。对我来说,三个半是“3.5”。对于使用,
作为十进制分隔符的其他人,它可能是“3,5”。也许我误解了你的意思,我不确定。您还应该解释为什么您认为新代码更好。我看到您使用的是GetDouble
而不是GetValue
。也许你应该在回答中解释一下,为什么你认为这样更好。我从来没有说过这样更好。这是对你的有效解决方案的回答。Float是基于区域性的错误,我将删除它。@Chris GetDouble将按原样获取数据类型。GetValue将值保存在对象中,因此您必须进行转换以使其与您想要的匹配。链接这里:@Chris答案不需要更好。解决问题的方法也很多。我用自己的方式解决了一个问题。如果你想使用GetValue或GetDouble,这是相当有偏见的。我说的“更好”是指与OPs不起作用的代码相比。您已经做了一些您认为可以解决问题的更改,您应该尝试解释它们是什么,而不是仅仅给出一个大的代码块,依靠OP(和其他任何人)查看您的代码,找出您所做的更改,以及为什么它们在原始代码不起作用的情况下起作用。
command.Connection = cn;
command.CommandText = "SELECT * FROM test";
SqlDataReader rd = command.ExecuteReader();
while(rd.Read())
{
double d = (double) rd.GetValue(0);
}
double d = Convert.ToDouble(rd.GetValue(0));
command.Connection = cn;
command.CommandText = "SELECT TOP 1 * FROM test order by myfield desc"; //or asc
double result = (double)command.ExecuteScalar();
List<double> result = new List<doulbe>();
while(rd.Read())
{
result.Add(double.Parse(rd[0].ToString());
}
"SELECT TOP 1 myfield FROM test order by myfield desc"; //or asc
double d = (double) rd.GetValue(0);
double d = 0;
double.TryParse(rd["ColumnName"].ToString().Replace('.',','),out d);
double d = double.Parse(rd["ColumnName"].ToString(), CultureInfo.InvariantCulture);
List<double> columnData = new List<double>();
using (SqlConnection connection = new SqlConnection("Server=EGC25199;Initial Catalog=LegOgSpass;Integrated Security=SSPI;Application Name=SQLNCLI11.1"))
{
connection.Open();
string query = "SELECT * FROM [dbo].[floattable]";
using (SqlCommand command = new SqlCommand(query, connection))
{
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
columnData.Add(reader.GetDouble(0));
}
}
}
}