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

如何使用单个SQL字符串从C#中的多个表创建数据集?,c#,sql,oledb,oledbdataadapter,oledbdatareader,C#,Sql,Oledb,Oledbdataadapter,Oledbdatareader,我是C#新手,对于如何使用单个sql字符串从多个表(实际上是其中的3个表)检索数据,我有点不知所措 基本上有两个主文件: 任务信息、Emp信息 和1个事务文件: 分配:这一个由2个主文件的主键和一些其他字段更新 没关系。但现在我需要运行一个命令,根据用户输入的搜索参数从所有3个表中检索数据,并在所有表中显示所选字段。在ms access中,我所要做的就是进行查询-以下是生成的sql: SELECT Assignments.Task_No, Assignments.Assignment_N

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

基本上有两个主文件:

  • 任务信息、Emp信息
和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字符串,在C#程序中,用户键入搜索参数并单击按钮。顺便说一句,它必须使用OLEDB数据读取器/适配器来完成

尝试此查询:

 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,可以使用。使用此选项,您可以将字符串
“this is…”
替换为参数占位符
@date
,然后将其设置为


这里的主要问题是的用法,以及它是否支持这种查询。但是在阅读了MSDN之后,它应该可以工作。

您现在正在使用SQL server吗?还是MS Access?我用的是MS Access。我通过oledb连接将它连接到我的C#应用程序,我想运行一个查询,从3个相关表中检索字段。我使用了OLEDB数据阅读器,不得不做一些调整。现在很好用。除了我仍然不知道如何显示所有匹配的记录-ryt现在我只能检索一行并在文本框中显示它们..谢谢你的回复!我将阅读更多关于oledbcommand.parameters的内容。再次感谢!我不知道这有什么不同。。你能再解释一下吗。。?非常感谢。如果您在连接查询中出错,请将我的give sql查询和您的sql查询进行比较,您可以发现它们之间的区别。你是在错误的地方使用条件。如果你仍然没有得到任何想法告诉我@用户1420202