gpt4 book ai didi

c# - 适配器无法在数据集 : Exception thrown 中填充数据

转载 作者:太空宇宙 更新时间:2023-11-03 22:03:01 25 4
gpt4 key购买 nike

我的网页上有一个下拉列表,其中的选定项目必须传递给数据库中的存储过程查询。但是,我的绑定(bind)方法中的 adp.Fill(ds) 出现了一个奇怪的错误。

异常总是显示“关键字‘to’附近的语法不正确。”,其中 to 始终是下拉选项中的第二个词。例如:下拉列表中的项目 - 9 到 5(第二个词:to),age of empires(第二个词:of)
异常(exception):
关键字“to”附近的语法不正确
关键字“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();
}

存储过程

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

有什么建议吗?

最佳答案

更新程序如下

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

关于c# - 适配器无法在数据集 : Exception thrown 中填充数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9495400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com