如何在SQL Server Table Adapter查询中指定通配符

8 浏览
0 Comments

如何在SQL Server Table Adapter查询中指定通配符

我正在努力弄清楚如何在SQL Server表适配器查询中指定通配符。我已经在这里这里,以及在微软技术网站的其他地方搜索过,但找不到合适的示例。

我有一个表适配器查询,根据带有两个参数的WHERE子句返回一个单个值(在表适配器查询向导中的特定查询选择)。这是表适配器中的查询,通过在Query Builder中测试查询并使用SQL Management Studio为特定数据库表编写查询可以正常工作。

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

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

基本上,如果WHERE参数是11-11A和ACADEMY 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());
// 在一次循环后中断。只期望一个答案。                
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)

0
0 Comments

在SQL Server Table Adapter查询中指定通配符的方法

有时候我们在使用SQL Server Table Adapter进行查询时,需要使用通配符来匹配特定的模式。下面我将介绍一种方法来指定通配符,并解决这个问题。

首先,在Dataset设计器中右键点击table adapter,然后添加查询。如下图所示:

enter image description here

接下来,使用SQL语句。选择返回单个值的查询。打开查询构建器,如下图所示:

enter image description here

在我的测试中,我成功地获取了一个值:

enter image description here

希望这个方法对你有用。

0