现在只能给namelink赋一条值,
怎么让给namelink赋值 ,满足like'%SearchText%' 的所有数据?诚谢!代码如下:
。。        
try { Exsql.Open(); }
            catch (Exception ex)
            {          
            }
            string cmd = "SELECT * FROM UserInfo WHERE shortname like '%" + SearchText + "%' or Usertname like '%" + SearchText + "%'";
            SqlCommand myComm = new SqlCommand(cmd, Exsql.con);
            SqlDataReader dr = null;
            try
            {
                dr = myComm.ExecuteReader(CommandBehavior.CloseConnection);
                if (dr.Read())
                name = dr["UserTname"].ToString();//企业名称 
                id = dr["Userid"].ToString();//企业id
                namelink = "◆<a href='ghzy.aspx?id=" + id + "' target='_blank'>" + name + "</a>";
                namelink = namelink + "<br/><br/>";            }
            catch
            {
            }

解决方案 »

  1.   

    现在这代码只能给namelink赋一条值,
    我想实现给namelink赋上满足
    string cmd = "SELECT * FROM UserInfo WHERE shortname like '%" + SearchText + "%' or Usertname like '%" + SearchText + "%'";
    的所有数据值try
      {
      dr = myComm.ExecuteReader(CommandBehavior.CloseConnection);
      if (dr.Read())
      name = dr["UserTname"].ToString();//企业名称  
      id = dr["Userid"].ToString();//企业id
      namelink = "◆<a href='ghzy.aspx?id=" + id + "' target='_blank'>" + name + "</a>";
      namelink = namelink + "<br/><br/>";  }
    是不是 这里面 需要这么 循环?
      

  2.   

    楼上的师兄 能具体点吗?
    我拿。net实在头痛
      

  3.   

    赋上满值  头痛!
    if(dr.Read())
    改成while(dr.Read())
      

  4.   

    已经换了
    但是所显示的还是只有一条数据,
    只是没改之前显示的是 满足条件的id号为最小的数据
    改了之后 显示的是 满足条件的id号为最大的数据

      

  5.   

    try
      {
      dr = myComm.ExecuteReader(CommandBehavior.CloseConnection);
      string namelink=string.Empty;
      while(dr.Read())
      {
         name = dr["UserTname"].ToString();//企业名称   
          id = dr["Userid"].ToString();//企业id
         namelink += "◆<a href='ghzy.aspx?id=" + id + "' target='_blank'>" + name  + "</a>"+"<br/><br/>";
    }  }
      

  6.   

    明白楼主的意思了……
    想把出去来的数据,显示出来,名字是一个连接对吧
    我常用的方法,取出数据DataTable,然后复制给GridView
    GridView里弄一列linkButton,给LinkButto赋值对象的ID,点击button取到ID,触发事件LinkButton中,CommandName='<%# Eval("ID") %>'藏值
    用OnCommand事件取得ID
    protected void btn1_Command(object sender, CommandEventArgs e)
    {
        string id= e.CommandName.ToString();//取得当前行藏值
        //后续别的操作...
    }
      

  7.   

    要改成如下    while(dr.Read())
        {
            //Do something.
        }因为dr.Read()方法执行一次,游标就向下查询一条新记录,如果查到的话返回true。
    如果用if的话只执行了一次,所以你的代码里面获取的只是第一条,
    而用while的话如果查询结束,即再没有下一条结果时dr.Read()返回false,跳出循环。
      

  8.   

    先感谢楼上的师兄们
    if(dr.Read())
    改成while(dr.Read())已经换了
    但是所显示的还是只有一条数据,
    只是没改之前显示的是 满足条件的id号为最小的数据
    改了之后 显示的是 满足条件的id号为最大的数据
      

  9.   


    string namelink = string.Empty;
    出错:编译器错误信息: CS0136: 不能在此范围内声明名为“namelink”的局部变量,因为这样会使“namelink”具有不同的含义,而它已在“父级或当前”范围中表示其他内容了
      

  10.   


    证明 游标 是 往下面 跑了的
    但是 没给namelink 赋着值!
      

  11.   

    那你在方法外面设置namelink 变量  全局的
      

  12.   

    上面有一个namelink 了
    看错误提示
      

  13.   

    try
      {
      dr = myComm.ExecuteReader(CommandBehavior.CloseConnection);
      if (dr.Read())
      name = dr["UserTname"].ToString();//企业名称   
      id = dr["Userid"].ToString();//企业id
      namelink += "<a href='ghzy.aspx?id=" + id + "' target='_blank'>" + name + "</a><br/><br/>";
      }要用+= 把上原来的值与新加的值串联起来 不然你总是赋的是新值