这是我的代码:
string query = "SELECT TEKN,KOMMENTAR FROM dbo.JOBBTEKN WHERE JOBBNR = " + jobId + ".00";
SqlDataReader reader = new SqlCommand(query, sqlConn).ExecuteReader();
这是我的数据:
我想要使用确切的JOBBNR
获取多行,但这不会返回任何内容。
编辑: 查询正在运行,只是我是愚蠢的而不是在正确的表中搜索。很抱歉浪费任何时间来帮助。
答案 0 :(得分:3)
将jobId
包含在单引号中。将您的查询修改为以下内容:
"SELECT TEKN,KOMMENTAR FROM dbo.JOBBTEKN WHERE JOBBNR = '" + jobId + ".00'"
观察jobId
周围的单引号。
查看评论,我怀疑JOBBNR
的数据类型是float
;不是decimel
。 float
数据类型内部包含多个精度,因此当您尝试在WHERE =
子句中匹配它们时,由于精度不匹配,可能无法获得结果。
有多种方法可以解决此问题。尝试下面的类似:
WHERE JOBBNR BETWEEN 1200.00 AND 1200.01
OR
"WHERE JOBBNR BETWEEN '" + jobId + ".00' AND '" + jobId + ".01'"