读书人

GridControl怎么建立主从表

发布时间: 2012-02-02 23:57:14 作者: rapoo

GridControl如何建立主从表?
我有多个主从表,主表为用户表,从表为用户的外语水平表,家庭成员,工作经验表等等。
我是这样建立的:

try
{
data = new DataSet();

sdaUsers = new SqlDataAdapter( "Select * from Base_Users ", db.conn);
sdaUsers.Fill(data, "Users ");
bsMaster = new BindingSource();

sdaExperiences = new SqlDataAdapter( "Select * from Base_Experiences ", db.conn);
sdaExperiences.Fill(data, "Experiences ");
bsExperiences = new BindingSource();

sdaFamilyMembers = new SqlDataAdapter( "Select * from Base_FamilyMembers ", db.conn);
sdaFamilyMembers.Fill(data, "FamilyMembers ");
bsFamilyMembers = new BindingSource();

sdaWorkExperiences = new SqlDataAdapter( "Select * from Base_WorkExperiences ", db.conn);
sdaWorkExperiences.Fill(data, "WorkExperiences ");
bsWorkExperiences = new BindingSource();

sdaUserLanguages = new SqlDataAdapter( "Select * from Base_UserLanguages ", db.conn);
sdaUserLanguages.Fill(data, "UserLanguages ");
bsUserLanguages = new BindingSource();

sdaContracts = new SqlDataAdapter( "Select * from Base_Contracts ", db.conn);


sdaContracts.Fill(data, "Contracts ");
bsContracts = new BindingSource();


//添加约束
DataRelation drExperiences = new DataRelation( "教育经历 ", data.Tables[ "Users "].Columns[ "Userid "],data.Tables[ "Experiences "].Columns[ "Userid "]);
data.Relations.Add(drExperiences);
DataRelation drFamilyMembers = new DataRelation( "家庭成员 ", data.Tables[ "Users "].Columns[ "Userid "], data.Tables[ "FamilyMembers "].Columns[ "Userid "]);
data.Relations.Add(drFamilyMembers);
DataRelation drWorkExperiences = new DataRelation( "工作经历 ", data.Tables[ "Users "].Columns[ "Userid "], data.Tables[ "WorkExperiences "].Columns[ "Userid "]);
data.Relations.Add(drWorkExperiences);
DataRelation drUserLanguages = new DataRelation( "外语水平 ", data.Tables[ "Users "].Columns[ "Userid "], data.Tables[ "UserLanguages "].Columns[ "Userid "]);
data.Relations.Add(drUserLanguages);
DataRelation drContracts = new DataRelation( "合同资料 ", data.Tables[ "Users "].Columns[ "Userid "], data.Tables[ "Contracts "].Columns[ "Userid "]);
data.Relations.Add(drContracts);

gcUser.DataSource = bsMaster;
//gvExperiences.DataSource = bsExperiences;
//gvFamilyMember.DataSource = bsFamilyMembers;
//gvWorkExperiences.DataSource = bsWorkExperiences;
//gvUserLanguages.DataSource = bsUserLanguages;


//gvContracts.DataSource = bsContracts;

bsMaster.DataSource = data;
bsMaster.DataMember = "Users ";
bsExperiences.DataSource = bsMaster;
bsExperiences.DataMember = "教育经历 ";
bsFamilyMembers.DataSource = bsMaster;
bsFamilyMembers.DataMember = "家庭成员 ";
bsWorkExperiences.DataSource = bsMaster;
bsWorkExperiences.DataMember = "工作经历 ";
bsUserLanguages.DataSource = bsMaster;
bsUserLanguages.DataMember = "外语水平 ";
bsContracts.DataSource = bsMaster;
bsContracts.DataMember = "合同资料 ";


//------------------------------中文化外键字段
sda = new SqlDataAdapter( "select deptid,deptname,state from base_depts;select ygXingshiid,YgXingShiName, " +
"reMark,state from base_Ygxingshis;select gradeid,gradename,state from base_userGrades;select kindid, " +
"kindname,state from base_userKinds;select positionid,positionName,state from base_userPositions ", db.conn);
dsAll = new DataSet();
sda.Fill(dsAll, "dsAllTable ");


}
finally
{
db.close();
}
}

他能生成一个主从表,但是我怎么也取不出从表对象。麻烦哪位高人帮帮忙。
对GridControl突然觉不熟悉了,弄了三天也弄不出来。

[解决办法]
自已动手,解决问题。
其实我建立的主从表关系是对的;关于取出子视图的部分的代码是这样的:
MainView.BeginUpdate();
MainView.FocusedRowHandle = 0;
MainView.SetMasterRowExpanded(MainView.FocusedRowHandle, true);
GridView gv = MainView.GetVisibleDetailView(MainView.FocusedRowHandle) as GridView;
if(gv != null) gv.SetMasterRowExpanded(0, true);
MainView.SetMasterRowExpandedEx(1, 1, true);
MainView.EndUpdate();

读书人网 >C#

热点推荐