如何在SQL Server Table Adapter查询中指定通配符
如何在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)