如何从数据集中分离不同表的数据?

时间:2013-04-03 10:18:29

标签: c# asp.net database c#-4.0 ado.net

先生实际上我从数据库中的三个表中获取数据。我在数据库中使用具有内部联接的查询,这对我来说很好,我从该查询填充数据集,但问题是我想要分隔属于每个记录中不同表的字段。 例如:我在db中有一个学生,老师和班级表。我使用这些表之间的内连接来获取数据。我从该结果填充数据集。现在在前端我想分离属于单独表的数据,我希望学生字段分开,教师字段分开。我该怎么办?什么操作要求我对数据集执行以实现这种情况。

4 个答案:

答案 0 :(得分:2)

如果使用存储过程,则可以返回3个不同的select语句,而不是使用连接。然后,您可以像这样访问表格:

ds.Tables[0].Columns["studentid"]
ds.Tables[1].Columns["classid"]
ds.Tables[2].Columns["teacherid"]

答案 1 :(得分:1)

您必须创建一个新数据集,其中包含三个不同的表及其正确的关系。

如果您已在数据库中拥有该结构,则可以在Visual Studio中单击 Data 上的菜单栏 - 添加新数据源并选择数据库 - 数据集在第一个向导对话框中。然后定义连接字符串并选择所有需要的表,视图等。

完成向导后,您将获得一个包含所有所需表格及其相互关系的新数据集。在设计器中,您可以打开数据 - 显示数据源面板,将所需的表拖放到表单/控件上,并创建非常容易的主/详细视图。

答案 2 :(得分:1)

循环浏览您的数据集,因为您知道了查询结果的列,所以您可以执行以下操作。

   ds.Tables[0].Columns["student_colummn1"] 
   ds.Tables[0].Columns["student_colummn2"] 
   ds.Tables[0].Columns["student_colummn3"] 

   ds.Tables[0].Columns["teacher_column1"] 
   ds.Tables[0].Columns["teacher_column2"]
   ds.Tables[0].Columns["teacher_column3"]

   ds.Tables[0].Columns["class_column1"] 
   ds.Tables[0].Columns["class_column2"] 
   ds.Tables[0].Columns["class_column3"] 

如果可能,请查看LINQ,让您的生活更轻松。希望这会有所帮助。

答案 3 :(得分:0)

Don't use a dataset.为学生,教师和班级表定义单独的班级。使用您的DAL填充这些类和&在您的申请中单独访问它们。