当前位置:编程学习 > C#/ASP.NET >>

帮忙了,谢谢@

public int getroomidbynuber()
        {
            int num = 0;
            using (SqlConnection conn = new SqlConnection(connString))
            {
                SqlCommand command = new SqlCommand("select roomid from room where number='307'", conn);

                //command.CommandType=CommandType.StoredProcedure;
                // command.Parameters.Add("@number", SqlDbType.NChar, 50).Value = number;
                conn.Open();
                SqlDataReader datareader = command.ExecuteReader();

                if (datareader.Read())                {
                    num = Convert.ToInt32(datareader["roomid"]);
                }
                datareader.Close();
                conn.Close();
            }
            return num;
        }


谁帮我看看这段有什么语法错误,我调试了以个小时就是没看出问题,可我再数据库中试可以找到的啊 ?

调试的时候执行到红色代码就退出来了,为什么?请指点? --------------------编程问答-------------------- while(datareader.Read())   --------------------编程问答-------------------- conn.Open(); 
你已经用USING了。就不要再conn.Open(); 。 --------------------编程问答-------------------- http://topic.csdn.net/u/20090807/14/7b2ee05d-1610-4e7e-b2e4-473000543d07.html?52506
已经回答了 --------------------编程问答--------------------
引用 1 楼 hecker728 的回复:
while(datareader.Read())

UP --------------------编程问答-------------------- 退出来了,就是发生了异常了。肯定是数据库操作语句的问题:

               SqlCommand command = new SqlCommand("select roomid from room where @number='307'", conn

看你后面的参数,这个应该是参数而不是列名吧? --------------------编程问答-------------------- 谢谢!

换成while的确是可以解决问题,

我想问的问题是我在单步调试的时候,明明
if(datareader.Read())    //这句话显示true 的时候就直接跳到if外边去了,为什么??????????

{
    num = Convert.ToInt32(datareader["roomid"]);
}
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,