始终从MS Access数据库vb.net返回空值

时间:2016-01-06 17:45:39

标签: sql .net database vb.net

我正在尝试在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)

1 个答案:

答案 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条件与任何记录都不匹配。