苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 3622|回复: 3

[其他] 关于数据库查询中的一个判读问题

[复制链接]
发表于 2013-5-19 10:48:34 | 显示全部楼层 |阅读模式
本帖最后由 秋日的枫叶 于 2013-5-19 11:22 编辑

在学习数据库的时候遇到一个问题

我查询数据库中数据
通过reader.Read()和while方法
将他们输入到richbox中

代码如下

[code=csharp]
            string conn = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True";
            SqlConnection sql = new SqlConnection(conn);
            sql.Open ();
            SqlCommand cmd = sql.CreateCommand();
            cmd.CommandText = "select * from Mp_User";
            SqlDataReader reader = cmd.ExecuteReader();

            while(reader.Read ())
            {
                string Name =reader.GetString(0);
                string age = reader.GetString(1);
                richTextBox1.AppendText("用户名是:"+Name+"年龄是:"+age+"\n");
            }
                //如果这里加return也不合适,因为下面还有很多语句要执行
                MessageBox.Show("数据库中没有数据");//这句一定被执行了,我想是在没有数据的情况下才执行。

            reader.Dispose();
            cmd.Dispose();
            sql.Dispose();
            //其他要执行的语句
[/code]

问题:

如果数据库中没有数据,我想他弹出对话框,提示错误
但是while语句执行后,肯定会执行这个messagebox。我也不能再messagebox上面加return
因为后面还有语句要执行?有什么办法吗?
能让while结合if?

----------------是我逻辑错误,应该不存在这样的情况----------
        int i = 0;
        while(i<=10)
         {
           i++;
         }
        MessageBox.Show("i的值大于10");

用这样的代码看起来更清楚。






1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-5-19 11:27:03 | 显示全部楼层
[code=csharp]  string conn = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True";
            SqlConnection sql = new SqlConnection(conn);
            sql.Open();
            SqlCommand cmd = sql.CreateCommand();
            cmd.CommandText = "select * from Mp_User";
            SqlDataReader reader = cmd.ExecuteReader();
            if (!reader.HasRows)
            {
                System.Windows.Forms.MessageBox.Show("数据库中没有数据");//这句一定被执行了,我想是在没有数据的情况下才执行。
            }
            while (reader.Read())
            {
                string Name = reader.GetString(0);
                string age = reader.GetString(1);
                richTextBox1.AppendText("用户名是:" + Name + "年龄是:" + age + "\n");
            }
            //如果这里加return也不合适,因为下面还有很多语句要执行
            reader.Dispose();
            cmd.Dispose();
            sql.Dispose();[/code]
发表于 2013-5-20 23:05:31 | 显示全部楼层
加油,我们都看好你哦。
 楼主| 发表于 2013-5-21 08:55:18 | 显示全部楼层
谢谢学习了
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-26 15:49

© 2014-2021

快速回复 返回顶部 返回列表