问个SqlDataReader read() 问题

月光下的土豆 2010-11-23 02:44:32

using (SqlDataReader dr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringProfile, CommandType.StoredProcedure, GetPlanCountSpName, para)) {
bool aaa = dr.Read();
if (aaa)
{
pInfo = new Plan(dr.GetDouble(0), dr.GetDouble(1), dr.GetDouble(2), dr.GetDouble(3));

}
else {
pInfo = new Plan(0,0,0,0);
}
GetCount.Add(pInfo);
}

GetPlanCountSpName

Create proc GetPlanCount
@yearStr nvarchar(40),
@deptStr nvarchar(40)
as
Select
SUM(YearPlan_Amount),
SUM(YearPlan_ly),
SUM(YearPlan_ls),
SUM(YearPlan_lg)
From
Mpt_YearPlan
Where
YearPlan_Year = @yearStr
and
YearPlan_UseDept = @deptStr
Go

aaa的值一值为true
其实不应该这样
大家有遇到过这种情况吗?
...全文
220 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
月光下的土豆 2010-11-23
  • 打赏
  • 举报
回复

for (int j = 0; j < GetDeptList.Count; j++)
{
DeptInfo.DeptGroup = "2011";
DeptInfo.DeptName = GetDeptList[j].DeptName;
try
{
GetCount = new PublicLibraryBLL().GetPlanCount(DeptInfo);
amount = GetCount[j].Amount;
ly = GetCount[j].Ly;
ls = GetCount[j].Ls;
lg = GetCount[j].Lg;
}
catch {
amount = 0;
ly = 0;
ls = 0;
lg = 0;
}

sb.Append(" <td height='22' nowrap style='padding-left:6px'>" + GetDeptList[j].DeptName + "</td>");
sb.Append(" <td nowrap style='padding-right:6px;text-align:right'>" + amount + "</td>");
sb.Append(" <td nowrap style='padding-right:6px;text-align:right'>" + ly + "</td>");
sb.Append(" <td nowrap style='padding-right:6px;text-align:right'> </td>");
sb.Append(" <td nowrap style='padding-right:6px;text-align:right'> </td>");
sb.Append(" <td nowrap style='padding-right:6px;text-align:right'> </td>");
sb.Append(" <td nowrap style='padding-right:6px;text-align:right'>" + lg + "</td>");
sb.Append(" <td nowrap style='padding-right:6px;text-align:right'>" + ls + "</td>");
sb.Append(" <td nowrap style='padding-right:6px;text-align:right'> </td>");
sb.Append(" <td nowrap style='padding-right:6px;text-align:right'> </td>");
sb.Append(" </tr>");
}
}


代码太多.
这是前台部门,
andrewsway 2010-11-23
  • 打赏
  • 举报
回复
说明数据没读完呗

你贴出来的代码,看起来并没有什么问题
yujiayou 2010-11-23
  • 打赏
  • 举报
回复
呵呵 不管有没有数据dr读出来都不会为空 所以就为true
你要加一个dr.Hasrow表示读到了数据
浪子-无悔 2010-11-23
  • 打赏
  • 举报
回复
DR.read() 是顺序读取数据的
只要有楼主的AAA 肯定就为TRUE。
当数据读完了 读不到数据肯定就返回FALSE了
p1ap1a 2010-11-23
  • 打赏
  • 举报
回复
只是个判断而已,只要有数据,就为true.
unicode 2010-11-23
  • 打赏
  • 举报
回复
在数据库运行那个sp看看,只要能查询到记录dr.Read()就返回true
together14629 2010-11-23
  • 打赏
  • 举报
回复
有没有要数据库里运行那个存储过程?
这样就知道是不是SQL语句了
每天回帖即可获得10分可用分!
jiameixiawanli 2010-11-23
  • 打赏
  • 举报
回复
把完整的代码粘出来啥,这样不清楚
wdywqc 2010-11-23
  • 打赏
  • 举报
回复
查到东西了。肯定返回true啊。你想返回什么东东

62,271

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧