我刚开始使用从其他人那里继承的应用程序,但遇到了一些问题。该应用程序是用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。
有人遇到过这个问题吗?或者您知道如何关闭此设置,以便它可以解析没有“@"的参数名称吗?
2条答案
按热度按时间qacovj5a1#
成功!系统。每当您创建.NET解决方案时,都会自动导入数据。我删除了此引用并将其添加回,以确保我拥有此库的最新版本,这样就解决了问题。我肯定拥有此库的旧版本,而该版本最初是被拉入的...我唯一能想到的是。
ax6ht2ek2#
它由.NET Framework数据提供程序处理,而不是由Visual Studio处理。
这取决于数据源。请看这里:Working with Parameter Placeholders
您可以尝试使用
System.Data.Odbc
提供程序并使用question mark (?)
保持器。在这种情况下,不要忘记按照参数在查询中的顺序添加参数。