【问题标题】:Having trouble using SelectCommand to select values in SQL database (C#)使用 SelectCommand 在 SQL 数据库中选择值时遇到问题(C#)
【发布时间】:2014-11-01 16:24:22
【问题描述】:

所以在我正在制作的应用程序中,我有一个 selectCommand,它应该在单击按钮时读取文本框中的文本,并根据值过滤搜索结果。

选择命令是。

SelectCommand="SELECT (bunch of columns) WHERE members.LastName LIKE '%@Ln%';

@Ln 的值是从后面的代码中获取的:

public void searchButtonClick(object sender, EventArgs e)
    {
        SqlDataSource1.SelectParameters.Clear();
        SqlDataSource1.SelectParameters.Add("Ln", inputLastName.Text);        
    }

我的目标是选择所有姓氏包含在姓氏文本框中输入的内容的记录。例如,我想要“Mar”、“Martinez”或空白文本框来选择姓 Martinez 的人。空白文本框应选择所有姓氏。

但我相信我的问题在于 SelectCommand 的语法。我已经在没有单引号的情况下对其进行了测试,并且它的许多其他变体都无济于事。如果我只留下“WHERE members.LastName LIKE @Ln”,它会选择姓氏是 inputLastName.Text 的确切值的记录,但正如我所提到的,这不是我想要的。 :(

我是编码新手,所以请尽量解释清楚,如果我的问题没有以最好的方式表达,我很抱歉。提前谢谢!

【问题讨论】:

  • 你能把剩下的代码也显示一下吗?
  • 我同意,我们需要您的完整代码副本并粘贴,因为这应该可以按书面方式工作。
  • @MeanGreen 你指的是 SelectCommand 吗?

标签: c# sql asp.net selectcommand


【解决方案1】:

不要忘记 SqlDataSource1.SelectParameters.Add("@Ln", 中的 "@"... 并将您的 SelectCommand 更改为:

SelectCommand="SELECT (bunch of column) WHERE members.LastName LIKE @Ln";

SqlDataSource1.SelectParameters.Add("@Ln", '%' +  inputLastName.Text + '%');

所以它应该可以工作。

【讨论】:

  • 谢谢,就像一个魅力! :) 还有一个问题。您提到我应该在添加参数时添加“@”。没有“@”,新代码对我来说工作得很好,但是有了它,我收到一个错误,说我“必须声明标量变量”。你知道为什么会这样吗?
猜你喜欢
  • 1970-01-01
  • 2022-11-30
  • 1970-01-01
  • 1970-01-01
  • 2017-08-16
  • 1970-01-01
  • 2018-02-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多