2

我使用绑定变量从 SQL 表中获取数据。

编码:

string commandText = string.Format("SELECT {0} FROM {1} WHERE {2} ORDER BY {3}", fields, from, whereStr, orderBy);
DbCommand command = GetSqlCommandWrapper(commandText);
int index = 0;
foreach (var item in whereParams)
{
    command.Parameters.Add(new OracleParameter(item, whereParamsBy[index++]));
}
DataTable db = new DataTable();

DataSet dataSet = null;
dataSet = CurrentDatabase.ExecuteDataSet(command);

命令文本:

fields = "TableA.*";
from = "TableA INNER JOIN TableB ON TableA .id = TableB.id";
whereStr = "TableA .id > 10";
orderBy = "TableA .id, TableB .id";

一切正常,直到我必须从 2 个表中获取数据,如查询:

select * from a inner join b on a.id = b.id where....

有人可以告诉我该怎么做吗?提前致谢

4

1 回答 1

2

整体方法不是很好,但就得到你想要的而言,应该这样做。

fields = "*";
from = "TableA AS a INNER JOIN TableB AS B ON a.id = b.id";
whereStr = "a.id > 10";
orderBy = "a.id, b.id";

将您的输入参数设置为该参数,或者将其粘贴到您提供给我们的代码之前,它将生成命令SELECT * FROM TableA AS a INNER JOIN TableB AS B ON a.id = b.id WHERE a.id > 10 ORDER BY a.id, b.id

请注意,这orderBy = "a.id; DROP TABLE TableA;";是一个可怕的前景

于 2018-08-22T14:17:34.923 回答