请教各位高手,在C#中,一数据库有多表,如下:表A(ID,NAME,AGE),表B(A_ID,D1,D2,D3),现在用一条SQ语句(select A.ID,A.NAME,D1,D2,D3 FROM A JOIN B ON A.ID=B.A_ID WHERE A.ID=123)查询的结果填入到一个dataset ds中,再把ds中的B表绑定到一个DATAGRIDVIEW上,可为什么datagridview,还要显示A表的内容呢,我在这个DATAGRIDVIEW中只想显示B表的内容呀,A表我用另外的控件显示,该怎么做呢?

解决方案 »

  1.   

    你的DATAGRIDVIEW的datasource设置成B表.你原来是怎么写的?
      

  2.   

    DataGridView内容 动态添加 
    循环datatable
      

  3.   

    SqlDataAdapter dataAdapterGZJL = new SqlDataAdapter("SELECT * FROM rs_gzjl WHERE (rs_gzjl.ry_id = " + nowmember + ")", strConnection);
                SqlCommandBuilder commandBuilder1 = new SqlCommandBuilder(dataAdapterGZJL);
                DataSet gzjlds = new DataSet();
                dataAdapterGZJL.Fill(gzjlds, "rs_gzjl");
                BindingSource gzjlbindsource = new BindingSource();
                gzjlbindsource.DataSource = gzjlds.Tables["rs_gzjl"];             dataGridViewGZJL.DataSource = gzjlbindsource;这是真实的代码
      

  4.   

    不要自动生成列,根据需要显示你想显示的字段
    或者查询语句只slect出B表的字段select B.D1,B.D2,B.D3 FROM A inner join B ON A.ID=B.A_ID WHERE A.ID=123
      

  5.   

    for(int i=0;i<dt.rows.count;i++)
    {
       for(int j=0;j<dt.columns.cout;j++)
       {
         if(dt.columns[j]//选出你不想要的列)
         {
           //不处理
         }
         else
         {
            datagridview1.rows[i][j]=dt.rows[i][j].toString();      }
       }
    }