У меня есть раскрывающийся список на моей веб-странице, выбранный элемент которого должен быть передан в запрос хранимой процедуры в базе данных. Тем не менее, я получаю странную ошибку здесь, в adp.Fill(ds)
в моем методе связывания.
Исключение всегда говорит «Неверный синтаксис рядом с ключевым словом« to ».», Где to
всегда является вторым словом в раскрывающемся списке.
Например: элементы в выпадающем списке - 9 to 5
(2-е слово: до), age of empires
(2-е слово: из)
Исключения:
Incorrect syntax near the keyword 'to'
Incorrect syntax near the keyword 'of'
и т. Д.
Вот метод, который я использую:
private void Bind(string ss)
{
SqlDataAdapter adp = new SqlDataAdapter("Retrieve", ConfigurationManager.ConnectionStrings["cn"].ConnectionString);
DataSet ds = new DataSet();
adp.SelectCommand.CommandType = CommandType.StoredProcedure;
adp.SelectCommand.Parameters.Add("@s1", SqlDbType.NVarChar, 255).Value = ss;
adp.SelectCommand.Parameters.Add("@s2", SqlDbType.NVarChar, 255).Value = DropDownList1.SelectedItem.ToString();
adp.Fill(ds);
DataList1.DataSource = ds;
DataList1.DataBind();
}
StoredProcedure
ALTER PROCEDURE [dbo].[Retrieve_SegmentedQ]
(
@s1 nvarchar(255),
@s2 nvarchar(255)
)
AS
BEGIN
DECLARE @query nvarchar(max)
SET @query = 'SELECT DISTINCT Details from tbData WHERE Name IN (' + @s1 + ') AND UnsegmentedQuery=' + @s2
exec sp_executesql @query
END
Есть предложения, что тут не так?