把while改为if看看第一次是不是成功的
if (dr1.Read())

string sexvalue=dr1[0].ToString();
string year1value=dr1[1].ToString();
string year2value=dr1[2].ToString();
string countyvalue=dr1[3].ToString();
//想在这里放上
接着看看其它原因

解决方案 »

  1.   

    1看有没有取到查询条件的值。
    2跟踪出sqlvalue1,在后台运行看是否有值。
      

  2.   

    edobnet(oоОoоО) ,改成if也一样的。我试过了巴蒂,我试过把那些取出的值绑定到TextBox,都能正常显示,那么应该是从数据库正常读取的吧?
    就是因为这样所以我觉得很奇怪,但是自己又看不出错在哪里,在这个地方卡了好几天了,郁闷。
      

  3.   

    You problem is at dr.Read(),
    It can't Read any data.
    You change it to :SqlConnection conn1 = new SqlConnection((String) ConfigurationSettings.AppSettings["gaowei"]);
    conn1.Open();
    SqlDataAdapter adp1=new SqlDataAdapter("select * from querypa",conn1);
    DataSet ds1=new DataSet();
    adp1.Fill(ds1);
    string sexvalue=ds1.Table[0].rows[0][0].ToString();
    ..............
      

  4.   

    缺少 cmd1.ExecuteNonQuery();
    写成如下:
    SqlCommand cmd1=new SqlCommand("select * from querypara",conn1);
    cmd1.ExecuteNonQuery();
    SqlDataReader dr1=cmd1.ExecuteReader();
    即可 :)
      

  5.   

    大虾:
    cmd1.ExecuteNonQuery()有什么用,跟cmd1.ExecuteReader();
    有什么关系?
      

  6.   

    非常感谢tangjun(俊) ,你的方法是正确的,我已经试过了。
    刚才我去馒头苦干苦干了一会,发现读取数据以后用来判断的三个if中,第三个if
    if (countyvalue != "")
      {
        sql1=sql1+ " and zz like '%" + countyvalue + "%' "; 
      }
    不起作用。就是因为它不起作用导致整个功能失效。可是这个if在原来利用TextBox输入
    查询条件的时候是正常的。我对它没做过任何改动。奇怪了我这个语句的功能是:比如查询条件是“人民”,那么类似“中华人民共和国”之类的记录
    都符合条件,都应该被查询出来
      

  7.   

    为什么这一句不行呢?
    if (countyvalue != "")
      {
        sql1=sql1+ " and zz like '%" + countyvalue + "%' "; 
      }