@Nikita07

Как передать в запрос табличную переменную?

Всем привет, есть вот такой код
private const string SELECT_PARTNERS_PARAM = "SELECT_PARTNERS_PARAM.sql";
// Метод для вызова запроса
private static string GetQuerySelect(string sql_file)
        {
            using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream($"Rtb.Api.Dal.Query.{sql_file}"))
            using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
                return reader.ReadToEnd();
        }
public async Task<IEnumerable<RtbModel>> GetPartnerDal(int[] ids)
        {
            var listOfPartners = new List<RtbModel>();
             // Тут идет обращение к запросу
            var sqlCommand = GetQuerySelect(SELECT_PARTNERS_PARAM);
            var cmd = CreateCommand(sqlCommand);

            using (var reader = await cmd.ExecuteReaderAsync())
            {
                while (await reader.ReadAsync())
                {
                   // Остальной код работы
                }
            }
            return listOfPartners;
        }


Собстевнно говоря сам SQL-запрос
SELECT
    [AdvertXrefDsp].[advertId],
    [Dsp].[dspId],
    [Dsp].[name],
    [Dsp].[endpoint],
    [Dsp].[protocol],
    [Dsp].[protocolOptions]

FROM 
    [AdvertXrefDsp]

INNER JOIN [Dsp] on [AdvertXrefDsp].[dspId] = [Dsp].[dspId]

WHERE
    [advertId] in (@advert_ids)


Вопрос, как можно передать параметр @advert_ids в SQL запрос из кода?
Желательно через табличную переменную, но как бы я ни старался, "сыпались" одни ошибки
  • Вопрос задан
  • 49 просмотров
Решения вопроса 2
В таком случае - только чередуя через запятую. В качестве параметра не получится.
Ответ написан
Комментировать
@d-stream
Готовые решения - не подаю, но...
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы