就是在行的最前面显示一个加号,点一下加号出来明细。在windows form中如何实现?

解决方案 »

  1.   

    把多个表放到一个dataset里,然后设置关系dataSet.Relations.Add(DataColumn parentColumn, DataColumn childColumn);
      

  2.   

    DataTable d1 = new DataTable();
    DataTable d2 = new DataTable();...DataSet ds = new DataSet();
    ds.Tables.Add(d1);
    ds.Tables.Add(d2);ds.Relations.Add(d1.Columns["ID"], d2.Columns["ID"]);
    dataGrid.DataSource = d1; //d1做主表,就有+号了
      

  3.   

    看看MSDN上有个演练,正是讲这方面的。
      

  4.   

    DataGrid支持DataSet的关联特性。所以你在数据绑定的时候必须绑定在父表上。例如:我们有两个表Department和Employee。dgCustomer.SetDataBinding(Department, "");//数据绑定
    dgCustomer.AllowNavigation = true;//允许导航Department就是父表。但是,必须注意的一点是,数据集上必须具有两个表之间的关系。你可以这样做:
    dataSet.Relations.Add("Department_Employee", 
                            dataSet.Tables["Department"].Columns["ID"],
                            dataSet.Tables["Employee"].Columns["Department"], true);
    当然添加关系必须是在绑定数据集之前,我一般都是在填充了数据集之后马上就建立这些关系和主键。
      

  5.   

    我是这么做的,而且做了两种方法都没成功,所以才来问问看:第一次:
    // 主表
    DataSet ds1 = new DataSet();
    ds1 = GetDS1(); // 子函数取DataSet// 从表
    DataSet ds2 = new DataSet();
    ds2 = GetDS2();// 子函数取DataSetds1.Tables.Add(ds2.Tables[0]); <-- 出错“其他信息: DataTable 已属于另一个 数据集。”
    第二次:
    DataSet ds = new DataSet();// 主表
    GetDS1(ds); // 子函数取DataSet// 从表
    GetDS2(ds); // 子函数取DataSetds.Relations.Add(ds.Tables["主表"],ds.Tables["从表"]);dataGrid.DataSource = ds.Tables["主表"];  <-- 只出来主表的信息没有加号
      

  6.   

    这段代码有问题吗VB.Netsqlup = "update Employees set LastName='" + emp.LastName + "',FirstName='" + emp.FirstName + "',City='" + emp.City + "',Country='" + emp.Country + "',Sex='" + emp.Sex + "' where EmployeeID=" + emp.EmployeeID
      

  7.   

    用DATAGRID UPDATE 的时候,你的表里是必须要有主键的~
      

  8.   

    你的最后一句有问题?你只指定一个表那样就只显示主表了。应该是dataGrid.DataSource = ds;
    这样就可以了。