ASP.NET 带字符串参数的 ODBC 查询

ASP.NET ODBC Query with String parameter

我正在使用表适配器通过 ODBC 查询数据库。查询由 VS2015 查询生成器创建。如果我使用可变参数创建 SQL 语句,则结果返回空白。如果我用硬编码参数替换参数(问号),那么结果会恢复正常。下面是我的示例代码,其中结果返回空白。

SQL 声明:

SELECT HPD_Help_Desk.Incident_Number, HPD_Help_Desk.Assigned_Group
FROM   HPD_Help_Desk HPD_Help_Desk
WHERE  (HPD_Help_Desk.Incident_Number > 'INC100000230000')
AND    (HPD_Help_Desk.Assigned_Support_Organization LIKE '%?%')

我已经使用参数集合编辑器设置了参数成员详细信息,并将 DbType 设置为 String,ProviderType 默认为 NVarChar。我保留的其余字段。

Default.aspx.cs:

public partial class Incidents : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    string s = "Copenhagen POD";
    HPD_Help_DeskTableAdapter incidentsAdapter = new HPD_Help_DeskTableAdapter();        
    GridView1.DataSource = incidentsAdapter.GetIncidentsByAssigned_Support_Organization(s);
    GridView1.DataBind();
    }
}

Default.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" inherits="Incidents" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
<link href="Styles.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<div>
    <h1>Incidents</h1>
    <p>
        <asp:GridView ID="GridView1" runat="server" CssClass="DataWebControlStyle">
           <HeaderStyle CssClass="HeaderStyle" />
           <AlternatingRowStyle CssClass="AlternatingRowStyle" />
        </asp:GridView>
        &nbsp;</p>
</div>
</form>
</body>
</html>

那我错过了什么?我应该更改什么以使 SQL 语句使用我在 Default.aspx.cs (Copenhagen POD) 中指定的参数正常工作?

按照 René Vogt 的建议,我在完成 TableAdapter Query Configuratino 向导以及尝试构建解决方案时遇到了 "No mapping exists from DbType Object to a known OdbcType" 错误。我正在使用参数集合编辑器设置参数。

仍然按照 René Vogt 的建议,参数 DbType 将自身设置为 Object,从而出现上述错误。为了解决这个问题,我再次打开了参数集合编辑器,看到更多的字段已经自动填充,所以我继续将 DbType 从 Object 更改为 String,现在它可以工作了。所以它使用了 René Vogt 的建议并对 DbType 进行了额外的更改,从而解决了我的问题。一周过去了,René Vogt 还没有写下他的上述评论作为对我问题的回答,这使得他有可能获得他应得的信任,然后我选择将答案添加到我自己的问题中。