2016-03-04 5 views
-2

У меня есть строка stringIDs, которая возвращается из программы C#, и строка выглядит так: «1», «2», «3», «4» »TSQL Использование CAST для преобразования строки в список целых чисел

у меня есть таблица, чьи col1 значения 1,2,3,4 (целые)

у меня есть следующий код SQL в C#

sql = $"SELECT col1, col2 from dbo.databas1 WHERE col1 in in CAST({stringIds} AS INT"; 

Я не могу использовать Cast для преобразования строки в целые числа. Может ли кто-нибудь сказать мне, как преобразовать эту строку, чтобы реализация Where where могла произойти?

+1

Ну можно просто отформатировать строку ' "1, 2, 3, 4"', а затем просто 'col1 в ({stringIds})'. Но было бы намного лучше разобрать индивидуальные ints и передать их каждый в качестве параметра. – juharr

+0

На самом деле Работает путем изменения вывода строки. – Morpheus

+0

Я не знаю, откуда берутся ваши исходные данные, но если вы доверяете ему, и вы на 100% уверены, что исходные данные всегда будут содержать только ints, тогда должно быть безопасно позволить SQL Server делать неявный листинг. – Sacrilege

ответ

0

Попробуйте это (без литья):

sql = $"SELECT col1, col2 from dbo.databas1 WHERE col1 in ({stringIds})"; 
Смежные вопросы