A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄山 黑马帝   /  2011-12-22 12:34  /  2187 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

select * from T_number where StartNo<=@No and EndNo>=@No 这样写能查出来吗 字符串能这么比吗


private void select_Click(object sender, EventArgs e)
        {
            
            string ConnStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
            using (SqlConnection conn = new SqlConnection(ConnStr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = "select * from T_number where StartNo<=@No and EndNo>=@No";
                    cmd.Parameters.Add(new SqlParameter("No",txtMobileNo.Text.ToString()));
                    using (SqlDataReader sdr = cmd.ExecuteReader())
                    {
                        try
                        {
                            string 运营商名字 = sdr.GetString(sdr.GetOrdinal("Name"));
                            MessageBox.Show(运营商名字);
                        }
                        catch
                        {
                            MessageBox.Show("查询失败,没有找到此条记录");
                        }
                    }
                }
            }
        }


我写的代码 有问题吗

评分

参与人数 1技术分 +2 收起 理由
李荣壮 + 2

查看全部评分

2 个回复

倒序浏览
字符串中的数字肯定是不能比较大小的, 你要先转换一下
回复 使用道具 举报
                        try
                        {
                            string 运营商名字 = sdr.GetString(sdr.GetOrdinal("Name"));
                            MessageBox.Show(运营商名字);
                        }
                        catch
                        {
                            MessageBox.Show("查询失败,没有找到此条记录");
                        }
楼主,建议用if……else,再加一个方法Read(),没必要用到try catch。你可以试试这样改:
if(sdr.Read())
{
       string 运营商名字 = sdr.GetString(sdr.GetOrdinal("Name"));
       MessageBox.Show(运营商名字);
}
else
{
     MessageBox.Show("查询失败,没有找到此条记录");
}

评分

参与人数 1技术分 +2 收起 理由
李荣壮 + 2

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马