从A表中读取数据到 GridView 或 DataGrid 里 然后读取A列中各行的值,再到B表内查询相关匹配信息显示到B列中 这种操作能实现吗?string name2; for (int i = 0; i < this.MyDataGrid.Items.Count; i++) 

    name2 = MyDataGrid.Items[i].Cells[0].Text; 
} SqlStr = "select *,(select B from subs2 where name like '%"+name2+"%') B from subs"; 如果直接给name2附值就能查到结果并显示在B列 
但是循环取值的时候却什么都取不到 
这是什么原因啊?

解决方案 »

  1.   

    select *,(select B from subs2 where name like '%"+name2+"%') B from subs
    将name2赋值
    lz在查询分析器中运行这句 有没有结果?
      

  2.   

    如果在开始的时候给name2赋值string name2 = "abc";那就可以在B列中显示对应的结果但是 name2 = MyDataGrid.Items[i].Cells[0].Text; 并没有生效
    SqlStr 里读取的还是最初的name2赋值 abc
      

  3.   


    name2 = MyDataGrid.Items[i].Cells[0].Value;
    试试
      

  4.   

    中断调试 SqlStr 是什么?
      

  5.   


    MyDataGrid.Items[i].Cells[0]后面没有Value的选项
      

  6.   

    看了半天不明白你在说什么,比如你有两个gv,一个gvA,一个gvB,你的意思是不是先从数据库里把东西显示到gvA里,而gvB里显示的是根据gvA中的字段从数据库里显示的东西么?干嘛要做的这么复杂,你弄两个窗体弄两个gv不就得了,从textBox里获取你要查询的信息你试一试MyDataGrid.Items[i].select[0].Value;好像是select忘记了 
      

  7.   

    只有一个DataGrid,但有两个数据表
    从subs表中读取学生名字存入A列,然后根据A列各人名到subs2表中查找相应的文化程度存入B列
    结果应该是下面这样的  A          B 
      李       小学
      张       中学
     
      

  8.   

    楼主是将for循环的最后一个值赋给了name2,就算sql查出来了也肯定达不到你要的效果
      

  9.   

    楼主最好在数据库里用视图实现你要的结果,最后在gridview中展现,没必要这么麻烦
      

  10.   


    但在SELECT的时候FOR循环下的NAME2并没有被赋值啊,而且如果NAME2的初始值为空的话,还会出现子循环结果过多的错误,如果FOR循环能正常运用的话会否出现同样的情况?
      

  11.   


    视图还没用过
    而且A列中的名字是由用户在Dropdownlist里选择不同的部门所得出的结果,并不是一成不变的
    这样的话运用视图的时候会不会有什么问题?
      

  12.   

    如果把A绑定在datakeyfield里行不行呢?