1

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

4

4 回答 4

2

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

ds.Tables[0].Columns["studentid"]
ds.Tables[1].Columns["classid"]
ds.Tables[2].Columns["teacherid"]
于 2013-04-03T10:32:25.730 回答
1

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

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

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

于 2013-04-03T10:26:59.170 回答
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,让你的生活更轻松。希望这可以帮助。

于 2013-04-03T10:27:08.220 回答
0

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

于 2013-04-03T11:18:35.717 回答