Я извлекаю данные из веб-службы в формате 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. Есть идеи получше?