Inner join statement in bind variables

时间:2018-08-22 13:44:29

标签: c# sql bind-variables

I use bind variables to get data from the SQL tables.

The code:

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);

The CommandText:

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

Everything works fine until I have to get data from 2 tables like the query:

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

Someone can tell me how to do it? Thanks in advance

1 个答案:

答案 0 :(得分: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;";的前景令人恐惧