我的 InfoPath 表单中有一个下拉列表,我正在根据下拉列表的选择加载一些其他字段。这样我就为下拉列表的“更改”事件编写了如下代码。
public void ProjectName_Changed(object sender, XmlEventArgs e)
{
string projectId = e.NewValue;
dataQueryConnection = (AdoQueryConnection)this.DataConnections["ProjectInformation"];
dataQueryConnection.Command = dataQueryConnection.Command + string.Format(" WHERE ProjectId = '{0}'", projectId);
dataQueryConnection.Execute();
}
当我第一次更改下拉列表中的项目时,它的工作正常,但是对于项目的后续更改(第二次等),它会给出以下错误,
无法为以下 DataObject 运行查询: ProjectInformation InfoPath 无法运行指定的查询。[0x80040E14][Microsoft OLE DB Provider for SQL Server] 关键字“WHERE”附近的语法不正确。
这就是第二次的原因,
dataQueryConnection.Command = 从“TRF”中选择“EmployeeID”、“Accountname”、“ProjectName”、“ProjectId”、“ProjectRole”、“BillableUtilization”、“ClientName”、“BillingCode”、“BUHead”。“hrt_vw_ProjectInformation”为“ hrt_vw_ProjectInformation" WHERE ProjectId = '3072507' WHERE ProjectId = '3076478'
每次与先前执行的查询一起触发 WHERE 子句的后续事件。
我怎样才能摆脱这个问题?