string ct = dr["值1"].ToString;
dr.close这个ct你是不是在你的第一个datareader方法里定义的。
那么在你的第2个datareader当然找不到了。你把string ct;写在
public class CreateTicket : System.Web.UI.Page
{
               string ct;
然后其它的方法里再给ct赋值。

解决方案 »

  1.   

    我打开第二个datareader 在SQL语句里select * from  表 where ctt= '"+ct+"' 
    就会报ct 未命名类呀.
      

  2.   

    bestfuture(美好未来.NET(CRM))   
    怎么赋值?
      

  3.   

    bestfuture(美好未来.NET(CRM))   
    怎么赋值?
      

  4.   

    以下是代码:SqlCommand MyCommand = new SqlCommand("SELECT * FROM article where id="+id+"",MyConnection);

    MyConnection.Open();
    try
    {
    SqlDataReader dr = MyCommand.ExecuteReader();

    if (dr.Read())
    {   

    string ct =  dr["classid"].ToString();
    string strconn="SELECT * FROM arnclass where classid="+dr["classid"].ToString()+"";

    note.Text= ToUbb(dr["note"].ToString());
    showname.Text = "<B><font color='#004FC6' size='3'>"+dr["showname"].ToString()+""+dr["bb"].ToString()+"</font></B>";
        


    }


                       dr.Close();

                           SqlCommand MyCommand1 = new SqlCommand("SELECT * FROM narclass where nclassid="+ct+"",MyConnection);
    SqlDataReader dr1 = MyCommand.ExecuteReader();

    if (dr1.Read())
    {   
    classname.Text = dr1["Nclass"].ToString();
    }

    dr1.Close();

                    
    }
    catch 
    {
    Response.Write("出错了!");
    }
      

  5.   

    SqlCommand MyCommand = new SqlCommand("SELECT * FROM article where id="+id+"",MyConnection);

    MyConnection.Open();
    try
    {
    string ct ="";//定义在这里,只要在if (dr.Read()){}外
    SqlDataReader dr = MyCommand.ExecuteReader();

    if (dr.Read())
    {   

     ct =  dr["classid"].ToString();
    string strconn="SELECT * FROM arnclass where classid="+dr["classid"].ToString()+"";

    note.Text= ToUbb(dr["note"].ToString());
    showname.Text = "<B><font color='#004FC6' size='3'>"+dr["showname"].ToString()+""+dr["bb"].ToString()+"</font></B>";
        


    }


                       dr.Close();

                           SqlCommand MyCommand1 = new SqlCommand("SELECT * FROM narclass where nclassid="+ct+"",MyConnection);
    SqlDataReader dr1 = MyCommand.ExecuteReader();

    if (dr1.Read())
    {   
    classname.Text = dr1["Nclass"].ToString();
    }

    dr1.Close();

                    
    }
    catch 
    {
    Response.Write("出错了!");
    }

      

  6.   

    string ct =  dr["classid"].ToString();
    你的ct 是一个局部变量 作用范围只在
    if (dr.Read())
    {   

    string ct =  dr["classid"].ToString();
    string strconn="SELECT * FROM arnclass where classid="+dr["classid"].ToString()+"";

    note.Text= ToUbb(dr["note"].ToString());
    showname.Text = "<B><font color='#004FC6' size='3'>"+dr["showname"].ToString()+""+dr["bb"].ToString()+"</font></B>";
        


    }

    你下面要引用就不行了
      

  7.   

    对啊,楼上的.你有什么方法解决一下?thinkingforever(盼星星)我用了你的方法,但还是报错啊,出错了!
    郁闷呀.
    如果按你的那样,我在第二个中取到的ct值不是为空了啊?
      

  8.   

    string ct =""; 定义到try外边阿!!!
      

  9.   

    string ct="";//定义到try外边阿!!!
    SqlCommand MyCommand = new SqlCommand("SELECT * FROM article where id="+id+"",MyConnection);

    MyConnection.Open();
    try
    {
    SqlDataReader dr = MyCommand.ExecuteReader();

    if (dr.Read())
    {   

     ct =  dr["classid"].ToString();
    string strconn="SELECT * FROM arnclass where classid="+dr["classid"].ToString()+"";

    note.Text= ToUbb(dr["note"].ToString());
    showname.Text = "<B><font color='#004FC6' size='3'>"+dr["showname"].ToString()+""+dr["bb"].ToString()+"</font></B>";
        


    }


                       dr.Close();

                           SqlCommand MyCommand1 = new SqlCommand("SELECT * FROM narclass where nclassid="+ct+"",MyConnection);
    SqlDataReader dr1 = MyCommand.ExecuteReader();

    if (dr1.Read())
    {   
    classname.Text = dr1["Nclass"].ToString();
    }

    dr1.Close();

                    
    }
    catch 
    {
    Response.Write("出错了!");
    }
      

  10.   

    1、你的ct要放到if (dr.Read())的外边。
    2、你确认表中有classid字段吗。并不一定是ct的错误,有可能是这个问题,你查一下表。
      

  11.   

    谢谢大家的帮助,问题解决了.按  WZCNet(没有做不到,只有想不到)  的指点,又检查了一下,发现,与数据库里的字段,写错了一个字母.结贴.