C# 当datatable.Compute(字符串)出现不详细的错误时,如何正确地编写它?
我正在创建一个双精度数据表,如下所示 我正在使用另一个依赖于用户输入的double来修复自身,上面两行,下面两行C# 当datatable.Compute(字符串)出现不详细的错误时,如何正确地编写它?,c#,datatable,C#,Datatable,我正在创建一个双精度数据表,如下所示 我正在使用另一个依赖于用户输入的double来修复自身,上面两行,下面两行 double razao = Variables.dadocobplanaW / Variables.alturaW; double min = Convert.ToDouble(DataAccess.Instance.tabelaplanaplatibandaW.Compute("MIN(Variavel)", "Variavel > " + razao.ToStrin
double razao = Variables.dadocobplanaW / Variables.alturaW;
double min = Convert.ToDouble(DataAccess.Instance.tabelaplanaplatibandaW.Compute("MIN(Variavel)", "Variavel > " + razao.ToString()));
double max = Convert.ToDouble(DataAccess.Instance.tabelaplanaplatibandaW.Compute("MAX(Variavel)", "Variavel < " + razao.ToString()));
DataRow[] rows = DataAccess.Instance.tabelaplanaamansardadaW.Select("Variavel = " + min.ToString() + " OR " + "Variavel = " + max.ToString());
double-razao=Variables.dadocobplanaW/Variables.alturaW;
double min=Convert.ToDouble(DataAccess.Instance.tabelaplanaplatibandaW.Compute(“min(Variavel)”,“Variavel>”+razao.ToString());
double max=Convert.ToDouble(DataAccess.Instance.tabelaplanaplatibandaW.Compute(“max(Variavel)”,“Variavel<”+razao.ToString());
DataRow[]rows=DataAccess.Instance.TabelaPlanaaManSardaw.Select(“Variavel=“+min.ToString()+”或“+”Variavel=“+max.ToString()”);
我已经重新验证了表及其名称,一切正常,代码运行,但当我在razao
中获得一个值时,程序将在尝试查找min
和max
时崩溃
是不是因为我在每种情况下都有两行具有相同的Variavel
有什么提示吗
编辑:下面是错误消息
问题可能是由于
razao.ToString()、min.ToString()、max.ToString()的格式不正确造成的。
;检查这些字符串中的分隔符。应该是。
,我想。如果有逗号
,”
;尝试此razao.ToString(CultureInfo.InvariantCulture)
此问题可能是由razao.ToString()、min.ToString()、max.ToString()的格式不正确引起的。
;检查这些字符串中的分隔符。应该是。
,我想。如果有逗号
,”
;尝试此razao.ToString(CultureInfo.InvariantCulture)
此问题可能是由razao.ToString()、min.ToString()、max.ToString()的格式不正确引起的。
;检查这些字符串中的分隔符。应该是。
,我想。如果有逗号
,”
;尝试此razao.ToString(CultureInfo.InvariantCulture)
此问题可能是由razao.ToString()、min.ToString()、max.ToString()的格式不正确引起的。
;检查这些字符串中的分隔符。应该是。
,我想。如果有逗号
,”
;试试这个razao.ToString(CultureInfo.InvariantCulture)
我认为您的问题在于解析compute()
方法使用的表达式
您可以使用下面的代码来验证它,而且似乎不需要双倍
String min = DataAccess.Instance.tabelaplanaplatibandaW.Compute("MIN(Variavel)", String.Format(@"Variavel > {0}", razao.ToString())).ToString();
之后,您需要找到compute()
方法的隐藏代码。
该方法使用表达式解析器,该解析器可能从表中读取数据并将其解析到System.data
的节点
问题出在过滤器部分,当Variavel
和razao
解析到System.Double时
在上面的链接中说:
例如,如果文本中的数字为2147483650,则DataSet将
第一次尝试将数字解析为Int32。这不会成功
因为这个数字太大了。在这种情况下,DataSet将解析
编号为Int64,这将成功。如果文字是一个数字
大于Int64的最大值,DataSet将解析
使用Double的文本。
使用科学记数法的真实文字,如4.42372E-30
使用System.Double解析
无论如何,你可以改变你的方式,从DB中取最小值和最大值。
我想你的问题在于解析
compute()
方法使用的表达式
您可以使用下面的代码来验证它,而且似乎不需要双倍
String min = DataAccess.Instance.tabelaplanaplatibandaW.Compute("MIN(Variavel)", String.Format(@"Variavel > {0}", razao.ToString())).ToString();
之后,您需要找到compute()
方法的隐藏代码。
该方法使用表达式解析器,该解析器可能从表中读取数据并将其解析到System.data
的节点
问题出在过滤器部分,当Variavel
和razao
解析到System.Double时
在上面的链接中说:
例如,如果文本中的数字为2147483650,则DataSet将
第一次尝试将数字解析为Int32。这不会成功
因为这个数字太大了。在这种情况下,DataSet将解析
编号为Int64,这将成功。如果文字是一个数字
大于Int64的最大值,DataSet将解析
使用Double的文本。
使用科学记数法的真实文字,如4.42372E-30
使用System.Double解析
无论如何,你可以改变你的方式,从DB中取最小值和最大值。
我想你的问题在于解析
compute()
方法使用的表达式
您可以使用下面的代码来验证它,而且似乎不需要双倍
String min = DataAccess.Instance.tabelaplanaplatibandaW.Compute("MIN(Variavel)", String.Format(@"Variavel > {0}", razao.ToString())).ToString();
之后,您需要找到compute()
方法的隐藏代码。
该方法使用表达式解析器,该解析器可能从表中读取数据并将其解析到System.data
的节点
问题出在过滤器部分,当Variavel
和razao
解析到System.Double时
在上面的链接中说:
例如,如果文本中的数字为2147483650,则DataSet将
第一次尝试将数字解析为Int32。这不会成功
因为这个数字太大了。在这种情况下,DataSet将解析
编号为Int64,这将成功。如果文字是一个数字
大于Int64的最大值,DataSet将解析
使用Double的文本。
使用科学记数法的真实文字,如4.42372E-30
使用System.Double解析
无论如何,你可以改变你的方式,从DB中取最小值和最大值。
我想你的问题在于解析
compute()
方法使用的表达式
您可以使用下面的代码来验证它,而且似乎不需要双倍
String min = DataAccess.Instance.tabelaplanaplatibandaW.Compute("MIN(Variavel)", String.Format(@"Variavel > {0}", razao.ToString())).ToString();
之后,您需要找到compute()
方法的隐藏代码。
该方法使用表达式