使用' IN' TdParameter中的条款

时间:2016-05-24 02:37:28

标签: c# teradata

我尝试使用C#代码连接到Teradata。我需要使用IN子句执行Select语句,我需要动态传递值。

例如:

TdCommand cmd = conn.CreateCommand();
cmd.CommandText = "Select EmpNum,EmpName from Employee where EmpName IN (?)";

我需要使用TdParameter来设置IN子句的值。它可以是一个或多个名称。这是Web API的一部分,我从API输入中收到名称列表。

有人可以指导我如何完成这项工作吗?

我使用的是.Net 4.5和Teradata dll 15.11版。如果您需要更多详细信息,请告诉我。

1 个答案:

答案 0 :(得分:1)

我想不出比这更好的解决方案。

List<string> employeeNames = APICall();
cmd.CommandText = "Select EmpNum,EmpName from Employee where EmpName 
                   IN (\"" + String.Join("\",\"", employeeNames) + "\")";

cmd.CommandText = "Select EmpNum,EmpName from Employee where EmpName 
                   IN ('" + String.Join("','", employeeNames) + "')";

单引号

这会保留报价。让我知道这个是否奏效。

TdParameter有一个允许类型列表(TdType - https://developer.teradata.com/doc/connectivity/tdnetdp/15.11/help/Teradata.Client.Provider~Teradata.Client.Provider.TdType.html),而数组不是其中之一。