Как улучшить запросы из DataTable и простой производительности SQL? - PullRequest
0 голосов
/ 29 августа 2018

Я извлекаю данные из веб-службы в формате JSON и буду хранить их в C # DataTable. Мне нужно отфильтровать запрос на основе некоторого условия, которое существует в DataTable.

Одна вещь, которую я имею в виду, состоит в том, чтобы получить значения из DataTable и передать его в качестве параметров в запросах SQL, чтобы я мог получить отфильтрованные данные. Пример кода, как показано ниже:

DataTable dt;

// Retrieve data from webservice and store into dt
....

// Join all the values from the datatable into a single string
var SelectedValues = dt.AsEnumerable().Select(s => s.Field<string>("Name")).ToArray();
string someid = string.Join(",", SelectedValues);

// Query to get the data from database
string query = @"select name from mytable where id IN (:someid)";

OracleCommand dbCommand = (OracleCommand)this.Database.GetSqlStringCommand(query) as OracleCommand;
dbCommand.Parameters.Add(":someid", OracleType.VarChar).Value = someid;

DataSet dsResult = this.Database.ExecuteDataSet(dbCommand);

return dsResult;

Но похоже, что это может иметь проблему, если :someid очень длинный и прошел максимальную длину Oracle для varchar. Есть идеи получше?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...