2012-08-06 45 views
0

我是C#的新手,对于如何使用单个sql-string从多个表中检索数据(实际上是其中的3个),我有点不知所措。如何使用单个SQL字符串在C#中的多个表中创建数据集?

基本上有2个主文件:

  • Task_Information,Emp_Information

1交易文件:

  • 作业:这一个被通过的主键更新2个主文件和其他一些字段。

而且没关系。但是现在我需要运行一个命令,它将根据用户输入的搜索参数从ALL 3表中检索数据,并在所有这些表中显示选定的字段。在MS Access,我所要做的就是让查询 - 这里的生成的SQL:

SELECT Assignments.Task_No, Assignments.Assignment_No, Assignments.Assignment_Date, 
     Task_Information.Client_Name, Emp_Information.F_Name, Emp_Information.L_Name 
    FROM Emp_Information 
     INNER JOIN (Task_Information 
        INNER JOIN Assignments ON Task_Information.Task_No = Assignments.Task_No) 
      ON Emp_Information.Emp_ID = Assignments.Assignee 
    WHERE (((Assignments.Assignment_Date)="this is just some date the user has to enter...")) 

总之,我需要找出如何使用相同的SQL字符串在C#程序在用户类型搜索参数并单击一个按钮。顺便说一句,它必须完成一个oledbdatareader /适配器;

+0

你现在在使用SQL Server吗?还是仍然MS Access? – 2012-08-06 11:34:06

+0

我正在使用MS Access。我通过oledb连接将它连接到我的C#应用​​程序,并且我想运行一个查询来从3个相关表中检索字段。我使用了oledbdatareader并且必须做一些调整。现在它工作正常。除了我仍然不知道如何显示所有匹配的记录 - 现在我只能检索一行并在文本框中显示它们。 – Madoo 2012-08-06 19:30:26

回答

0

尝试此查询:

SELECT Assignments.Task_No, Assignments.Assignment_No, Assignments.Assignment_Date, 
Task_Information.Client_Name, Emp_Information.F_Name, Emp_Information.L_Name 
    FROM Emp_Information 
    INNER JOIN Task_Information 
    ON Task_Information.Task_No = Assignments.Task_No 
    INNER JOIN Assignments 
    ON Emp_Information.Emp_ID = Assignments.Assignee 
    WHERE (((Assignments.Assignment_Date) like "%this is just some date the user has to enter...%")) 
+0

我不知道这是如何不同的..你能否请多解释一下。 。?非常感谢。 – Madoo 2012-08-06 16:48:06

+0

哥们你是个天才!有效!!有效!!谢啦!! – Madoo 2012-08-06 17:05:25

+0

你在连接查询时犯的错误只是比较我的sql查询和你的sql查询,你可以找到它们之间的区别。你是在错误的地方使用条件。 – 2012-08-07 04:43:30

0

,如果你将与SQL Server的工作,你可以使用SqlCommand。有了这个,你可以用一个参数占位符@date代替你的字符串"this is...",然后它可以被设置为shown on MSDN

这里的主要问题是OleDbDataReader的使用,以及它是否支持这种查询。但在阅读OleDbCommand.Parameters的MSDN后,它应该可以正常工作。

+0

谢谢你的回复!我将更多地阅读oledbcommand.parameters。再次感谢! – Madoo 2012-08-06 16:47:08

相关问题