如何修改这句统计记录总数的语句

my3b 2003-10-15 01:35:33
string sql="select count(*) from qcqg where uid='2'";
cmd = new SqlCommand(sql,conn);
read=cmd.ExecuteReader();
if(read.Read())
{
countreg=read.GetValue(0).ToString();
}
上面的代码是统计语句,运行时并没错,我再改为如下代码:
string sql="select count(*) from qcqg where uid='2'";
cmd = new SqlCommand(sql,conn);
read=cmd.ExecuteReader();
if(read.Read())
{
countreg=read.GetValue(0).ToString();
}
else
{
Response.Write (目前还没有任何信息!");
}
运行也是没有错误,但问题是不管数据库中有没有对应的数据都不会显示"目前还没有任何信息"这条提示语句,我调用时是这样调用的:<%=countreg%>,如果数据库中没有对应的数据,则会显示0,这个结果也是对的,但我希望是显示"目前还没有任何信息"这样的提示语句,大家给看一下,这里的原因是调用方式导致不会显示提示语句吗?还是上面的代码写的不对呢?望大家给写个正确的写法。

有网友这样写:
string sql="select count(*) from qcqg where uid='2'";
cmd = new SqlCommand(sql,conn);
int i=(int)cmd.ExecuteScalar();
if(i>0)
countreg=i;
else
Response.Write (目前还没有任何信息!");

还有的这样写:
放一个label或者literal在你的aspx文件里,然后根据结果设:
theLabel.Text = read.GetValue(0).ToString();
else
theLabel.Text = "目前还没有任何信息!";
但上面的写法都不会实现提示"目前还没有任何信息"这样的目的,大家再帮我一下好吗?应该说这个问题对于有经验的程序员来说很简单的,我初学,这个简单的问题也难住了我,希望能得到大家的帮忙,谢谢。
...全文
73 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
webdiyer 2003-10-15
  • 打赏
  • 举报
回复
把“共有求购信息:条”这段话也放在一个Label控件中,当没有信息时就隐藏该Label控件,有信息时就显示,另外上面的“目录还没有任何信息”也一样处理,而不是用Response.Write方法写出来。
rolandzhang 2003-10-15
  • 打赏
  • 举报
回复
你用alias 可以避免这类错误:
string sql="select count(*) totalnum from qcqg where uid='2'";
my3b 2003-10-15
  • 打赏
  • 举报
回复
谢谢楼上的指点,问题基本上解决了,但还有个小问题没有解决,希望能再予指点,我在调用时是这样写的:共有求购信息:<%=countreg%>,但运行时显示就不对了,如下显示:
目前还没有任何信息!
共有求购信息:条
我在Response.Write ("目前还没有任何信息!");这句下面加了return;也没用,仍然是显示上面的语句,怎样写才能只显示"目前还没有任何信息!"这句呢?还望再予指点,谢谢。
meetweb 2003-10-15
  • 打赏
  • 举报
回复
int i=(int)cmd.ExecuteScalar();
if(i>0)
// countreg=i;
//这里改为countreg=i.ToString);
//因为int类型不能直接赋于String

else
Response.Write ("目前还没有任何信息!");
my3b 2003-10-15
  • 打赏
  • 举报
回复
按照webdiyer的方法来写,运行时出现如下错误:
Compiler Error Message: CS0029: Cannot implicitly convert type 'int' to 'string'

Source Error:



Line 41: int i=(int)cmd.ExecuteScalar();
Line 42: if(i>0)
Line 43: countreg=i;
Line 44: else
Line 45: Response.Write ("目前还没有任何信息!");
但我已经用了public string countreg;来定义countreg变量了,为何还是出错?还请再予指点。
my3b 2003-10-15
  • 打赏
  • 举报
回复
powerdel()说得很有道理,但具体如何实现判断read的内容为0时显示提示语句呢(结合我上面写的语句)?

另外,webdiyer写得语句能显示提示语句,但问题是这样无法统计总数了,我太菜,能再进一步指点一下吗?谢谢!
webdiyer 2003-10-15
  • 打赏
  • 举报
回复
对不起,上面那个还没写完不知怎么就发上去了,下面这个应该是正确的:
string sql="select count(*) from qcqg where uid='2'";
cmd = new SqlCommand(sql,conn);
int i=(int)cmd.ExecuteScalar();
if(i>0)
countreg=i;
else
Response.Write (目前还没有任何信息!");
如果没有记录是countreg就等于0,一定会显示“目录还没有任何信息”这段话,你试试用ResponseWrite(countreg.ToString())来显示出countreg的值看看是多少。
webdiyer 2003-10-15
  • 打赏
  • 举报
回复
string sql="select count(*) from qcqg where uid='2'";
cmd = new SqlCommand(sql,conn);
read=cmd.ExecuteScalar();
(); Response.Write (目前还没有任何信息!");
}
powerdel 2003-10-15
  • 打赏
  • 举报
回复
肯定不会出现Response.Write (目前还没有任何信息!");
因为你可以if(read.Read())到内容,不过内容是0而已.
你可以判断read的内容是否为0,如果为0显示 (目前还没有任何信息!");
一套操作数据库(*.db,DBF) 的工具,功能非常的强大。 2000版功能: 包括建立数据表、删除数据表、索引、排序、打印、预览、数据转换、数据备份、修改数据表结构、输出文本、输出HTML文件、统计查询、字段求合、生成决策图表等功能。 2002版新增功能: 1、多窗口(MDI)与单窗口两种模式 2、提供最近使用路径 3、提供BDE版本检查 4、设置进入口令 5、给数据表填加口令 5、设置启动目录 6、复制记录、复制当前字段名称、复制字段名列表、复制选择区域数据 7、改进SQL执行功能 8、改进数据转换功能 9、记录查找功能 10、自动生成创建表SQL语句 11、设置数据移动位数 12、改进了建立索引功能,现可以建立主重索引(多个字段) 13、自动显示当前字段类型/宽度/字段总数/索引字段 Xp版新增功能: 1、加入了功能强大的报表设计、报表打印功能。可自己根据数据库设计报表,还可以把设计好的报表另存为报表文件,也可输出如Html格式等。 2、加入了BDE数据库驱动程序,解决了以前下载后没有驱动程序不能正常运行的问题。 Xp 2002.11 版新增功能:(右击菜单) 1、加入对数据的剪切、复制、粘贴、删除功能。可直接把一张表内的数据复制到另一张表内,也可以把一张表的某字段的数据复制到另一张表的某字段。功能非常实用。(选择区域内数据) 2、加入输出Excel、Html、rtf、csv、txt文件格式。(选择区域内数据)

62,041

社区成员

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

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

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

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