2012-08-06 40 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

相關問題