我正在尝试在vb.net windows窗体应用程序中执行此查询
select SUM(Amount)
from FeesRecord
where Student_Id=@p1
AND Batch_Id=(select Batch_Id from Admissions where Admission_Id=@p2)
AND ReExam_Id IS NULL)
我在参数中设置了正确的值,但我总是在执行者中得到空的结果。
我的代码
cmd.CommandText = "select SUM(Amount) from FeesRecord where (Student_Id=@p1 AND Batch_Id=(select Batch_Id from Admissions where Admission_Id=@p2) AND ReExam_Id IS NULL)"
cmd.Parameters.AddWithValue("@p1", txtregno.Text)
cmd.Parameters.AddWithValue("@p2", gv1.Rows(i).Cells(0).Value.ToString)
MsgBox(cmd.ExecuteScalar.ToString)
答案 0 :(得分:0)
首先,您是否打开了连接说con.Open()
并在命令对象cmd.Connection = con
中引用了该连接字符串。
其次,您可以使用简单连接
将查询修改为如下所示select SUM(fr.Amount)
from FeesRecord fr join Admissions a
on fr.Batch_Id = a.Batch_Id
where fr.Student_Id = @p1
AND a.Admission_Id = @p2
AND fr.ReExam_Id IS NULL;
如果仍然获得null返回,则直接在DB中运行相同的查询,看看你得到了什么结果。最有可能的是,WHERE
条件与任何记录都不匹配。