解决方案 »

  1.   

    是不是这样就可以了?
      foreach (DataRow drr in dr)
            {
                    textBox1.Text = drr[0].ToString();
      

  2.   

    不明白你到底要干啥在循环里写label1.Text =???这样有任何意义?你只能得到最后一次循环的值,之前的结果全部丢弃了
      

  3.   


    我想求字符5,在dataset中是第几行
     DataRow[] dr = ds.Tables[0].Select("序号='5'");
                foreach (DataRow drr in dr)
                {
                   label1.Text = Array.IndexOf(ds.Tables[0].Select(), drr).ToString();
                }
            //    label1.Text = Array.IndexOf(ds.Tables[0].Select(), dr[0]).ToString();
    返回的结果为什么是45,不是6
      

  4.   

    不要乱用ds.Tables[0].Select(),这是给它重新排序了
    你不如用for循环,而不是foreach循环
    然后自己做个if语句比较,输出i
      

  5.   

    断点跟,很容易看出,ds.Tables[0].Select()是按照序号的字符串来排序的
    先是0,然后是1,然后是10,11,12
    这样5可不就是在45行吗
      

  6.   

    要么你就不要定义成string,而是int类型
    这样会按照数字大小排序,而不是字符串排序
      

  7.   

    用int初始化,搜索搜不到,看来只能用死办法顺序搜索了,我这个应用是连接很多socket,返回的数据通过下标对应到ds上
      

  8.   

    你这不是int,还是string啊
    因为column类型是string,所以虽然你赋值的时候没有强制转换,但是依然还是隐式转换了