如何在 SQL 服务器 Table 适配器查询中指定通配符

How to specify a wildcard in a SQL Server Table Adapter query

我想知道如何在 SQL 服务器 table 适配器查询中指定通配符。我已经 here and here,并在 Microsoft 技术网站的其他地方进行了搜索,但找不到合适的示例。

我有一个 table 适配器查询,它应该 return 一个基于 WHERE 的单个值(table 适配器查询向导中的特定查询选择) ] 带有两个参数的子句。这是来自 table 适配器的查询,它可以很好地测试 Query Builder 中的查询并使用 SQL Management Studio 为特定数据库 table 编写查询。

SELECT     owner_name_1
FROM         BuildingPermit.dbo.real_estate
WHERE     (prop_addr_no like ?) AND (prop_addr_str = ?)

为了说明一点,上面的查询在适配器中。在我的示例中,11% 和 ACADEMY ST 作为参数传递给查询。

基本上,如果 WHERE 参数是 11-11AACADEMY ST,我得到一个非空值测试时的值,但不在我的 C# 程序中。

这是一个 C# 处理程序,它不起作用。

private void owner_cb_DropDown(object sender, EventArgs e)
{
  string str_no = street_number_cb.Text.Trim().ToUpper() + "%"; 
  string str_name = street_name_cb.Text.Trim().ToUpper();

  string owner_name_1 = (string )real_estateTableAdapter1.owner_name_1_q(str_no,            str_name));
  owner_cb.Text = owner_name_1;
}

更新:

我尝试了一个完整的行查询,结果相同。

DataTable re_tbl = real_estateTableAdapter1.get_re_rec_by_str_num_name_q(search_street_number, street_name_cb.Text.ToString().ToUpper());

// Break after one loop. Only one answer expected.                
foreach (DataRow dr in re_tbl.Rows)
{
    string temp_val = (string)dr["owner_name_1"];
    owner_cb.Text = temp_val;
    break;

}

我得到一个空值。

我也试过用单引号将包含 11%(来自我的示例)的参数括起来,但这也不起作用。

我试过了,QueryBuilder 不会解析它。

SELECT     owner_name_1
FROM         BuildingPermit.dbo.real_estate
WHERE     (prop_addr_no LIKE @p1) AND (prop_addr_str = @p2)

这是我做的,很有效,希望对你有用。

1.- 在数据集设计器中右键单击 table 适配器,添加查询

2.- 使用 SQL 语句

3.- Select 其中 returns 单个值

4.- 打开查询生成器,它看起来像这样:

5.- 在我的测试中,我确实得到了一个值: