db2 在VS2010中调试时,DB Query不再识别现有应用程序中的SQL参数

h43kikqp  于 2022-12-13  发布在  DB2
关注(0)|答案(2)|浏览(165)

我刚开始使用从其他人那里继承的应用程序,但遇到了一些问题。该应用程序是用C#编写的,在VS2010中运行,使用的是3.5框架。我无法在我的计算机上运行该应用程序进行调试,因为在编写数据库查询时,它无法识别他们引用参数的方式。
例如,只要有SQL或DB2查询,就应该这样写:

using (SqlCommand command = new SqlCommand(
    "SELECT Field1 FROM Table1 WHERE FieldID=@FieldID", SQLconnection))
{
    command.Parameters.AddWithValue("FieldID", 10000);
    SqlDataReader reader = command.ExecuteReader();
    ...

如果你将注意到“参数.AddWithValue(“FieldID”,10000);“语句不包含原始命令文本中的“@”符号。在计算机上运行该语句时,收到一条错误消息,指出找不到参数“FieldID”。
我改了这一行:

command.Parameters.AddWithValue("FieldID", 10000);

对此:

command.Parameters.AddWithValue("@FieldID", 10000);

一切都很好......直到它遇到下一个SQL调用,并弹出相同的错误。显然,这一定是Visual Studio中的一个设置,但我在互联网上找不到任何有关它的信息。SQL参数添加的一半示例都包含“@”,另一半则不包含它。很可能我只是不知道该搜索什么。
最后一个选择是将每个查询改为在参数名称前面使用“@”,但这是一个用于管理公司发货的运输和运营应用程序,实际上有数千个参数。当主管问“进展如何?”时,答案恰好是“我已经努力了一周,我几乎就要开始了”,很难解释项目的ROI。
有人遇到过这个问题吗?或者您知道如何关闭此设置,以便它可以解析没有“@"的参数名称吗?

qacovj5a

qacovj5a1#

成功!系统。每当您创建.NET解决方案时,都会自动导入数据。我删除了此引用并将其添加回,以确保我拥有此库的最新版本,这样就解决了问题。我肯定拥有此库的旧版本,而该版本最初是被拉入的...我唯一能想到的是。

ax6ht2ek

ax6ht2ek2#

它由.NET Framework数据提供程序处理,而不是由Visual Studio处理。
这取决于数据源。请看这里:Working with Parameter Placeholders
您可以尝试使用System.Data.Odbc提供程序并使用question mark (?)保持器。在这种情况下,不要忘记按照参数在查询中的顺序添加参数。

相关问题