#c# #sql-server #winforms
Вопрос:
Я пытаюсь сделать запрос к базе данных для этого я использую текстовое поле, в котором я должен размещать значения, которые всегда больше 1, поэтому in есть, но мне нужно иметь возможность добавлять кавычки » в начале и в конце каждой строки, также добавляя запятую в каждой строке или как я мог бы это сделать, так как в настоящее время я могу добавлять кавычки только в начале и конце, но всего текста и запятую, если также в конце
SELECT TOP(500) [contenido]
FROM[Clientes].[dbo].[web]
where sitios in ('https://www.google.com','https://www.youtube.com')
В базе данных он генерирует следующее
contenido - sitios
multimedia - https://www.youtube.com
informacion - https://www.google.com
но в запросе приложения за отсутствие кавычек » и запятая выдает ошибку
SELECT TOP(500) [contenido]
FROM[Clientes].[dbo].[web]
where sitios in ('https://www.google.comhttps://www.youtube.com')
error
это мой код
new SqlDataAdapter(new SqlCommand(@"
SELECT TOP(500) [contenido]
FROM[Clientes].[dbo].[web]
where sitios in ('" textBox1.Text "')", conexion.conectado())).Fill(dataTable);
Комментарии:
1. Используйте параметры SQL, чтобы избежать внедрения SQL и проблем с форматированием.
2. я новичок в этом и не получаю доступа для изменения только поиска bd, как это ?
Ответ №1:
Ты можешь попробовать это ?
var urlList = textBox1.Text.Split(
new[] { "rn", "r", "n" },
StringSplitOptions.None);
string query = "SELECT TOP(500) FROM[Clientes].[dbo].[web] WHERE sitios in ({0})";
SqlCommand cmd = new SqlCommand(query, conexion.conectado());
int index = 0;
List<string> paramList = new List<string>();
foreach (var url in urlList)
{
if (!String.IsNullOrEmpty(url))
{
cmd.Parameters.AddWithValue("@param" index, url);
paramList.Add("@param" index);
index ;
}
}
cmd.CommandText = String.Format(query, String.Join(",", paramList));
cmd.CommandTimeout = 99999;
new SqlDataAdapter(cmd).Fill(dataTable);
Этот метод решит вашу проблему и будет безопаснее, чем ваш код.
Комментарии:
1. кто использует @param1? я пытаюсь получить это в отладочном коде (» google.comhttps://www.youtube.com» ) @param1 = » не могу получить (» google.com’,’https://www.youtube.com’ )
2. @ryuzdev Для этого вам понадобятся два параметра