C#SQL SELECT无法使用WHERE =十进制变量

时间:2017-12-01 10:03:05

标签: c# mysql sql

这是我的代码:

string query = "SELECT TEKN,KOMMENTAR FROM dbo.JOBBTEKN WHERE JOBBNR = " + jobId + ".00";
SqlDataReader reader = new SqlCommand(query, sqlConn).ExecuteReader();

这是我的数据:

Data

我想要使用确切的JOBBNR获取多行,但这不会返回任何内容。

编辑: 查询正在运行,只是我是愚蠢的而不是在正确的表中搜索。很抱歉浪费任何时间来帮助。

1 个答案:

答案 0 :(得分:3)

jobId包含在单引号中。将您的查询修改为以下内容:

"SELECT TEKN,KOMMENTAR FROM dbo.JOBBTEKN WHERE JOBBNR = '" + jobId + ".00'"

观察jobId周围的单引号。

查看评论,我怀疑JOBBNR的数据类型是float;不是decimelfloat数据类型内部包含多个精度,因此当您尝试在WHERE =子句中匹配它们时,由于精度不匹配,可能无法获得结果。

有多种方法可以解决此问题。尝试下面的类似

WHERE JOBBNR BETWEEN 1200.00 AND 1200.01

OR

"WHERE JOBBNR BETWEEN '" + jobId + ".00' AND '" + jobId + ".01'"