如何使用单个 SQL 字符串从 C# 中的多个表创建数据集

本文关键字:数据集 创建 单个 何使用 SQL 字符串 | 更新日期: 2024-10-25 14:40:08

我是 C# 的新手,我对如何使用单个 sql 字符串从多个表中检索数据(实际上是其中 3 个)有点一无所知。

基本上有 2 个主文件:

  • Task_Information, Emp_Information

和 1 个事务文件:

  • 赋值:这个由 2 个主文件和其他一些字段的主键更新。

没关系。但是现在我需要运行一个命令,该命令将根据用户输入的搜索参数从所有 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..."))

简而言之,我需要了解如何在 C# 程序中使用相同的 sql 字符串,其中用户键入搜索参数并单击按钮。 顺便说一句,它必须使用OledbDataReader/适配器来完成;

如何使用单个 SQL 字符串从 C# 中的多个表创建数据集

尝试以下查询:

 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...%"))

如果你使用SQL Server,你可以使用SqlCommand。有了这个,您可以将字符串"this is..."替换为参数占位符 @date ,然后可以像 MSDN 上显示的那样进行设置。

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