我刚开始使用从别人那里继承的应用程序,但遇到了一些问题。该应用程序是用 C# 编写的,并针对 3.5 框架在 VS2010 中运行。我无法在我的机器上运行应用程序进行调试,因为它无法识别他们在编写数据库查询时引用参数的方式。
例如,无论他们有 SQL 或 DB2 查询,它都是这样编写的:
using (SqlCommand command = new SqlCommand(
"SELECT Field1 FROM Table1 WHERE FieldID=@FieldID", SQLconnection))
{
command.Parameters.AddWithValue("FieldID", 10000);
SqlDataReader reader = command.ExecuteReader();
...
如果您会注意到“parameters.AddWithValue("FieldID", 10000);” 语句不包括原始命令文本中的“@”符号。当我在我的机器上运行它时,我收到一条错误消息,指出找不到参数“FieldID”。
我改变这一行:
command.Parameters.AddWithValue("FieldID", 10000);
对此:
command.Parameters.AddWithValue("@FieldID", 10000);
一切都很好......直到它遇到下一个 SQL 调用并出现同样的错误。显然这必须是视觉工作室中的一个设置,但我在互联网上找不到任何关于它的信息。SQL 参数添加的示例中有一半写了“@”,另一半不包括它。很可能我只是不知道要搜索什么。
最后的选择是将每个查询更改为在参数名称前面使用“@”,但这是用于管理公司货运的运输和运营应用程序,实际上有数千个参数。当回答导演的问题“进展如何?”时,很难解释项目的投资回报率。恰好是“我已经努力了一个星期,我几乎已经开始了。”
有没有人遇到过这个问题,或者你知道如何关闭这个设置,这样它就可以解析没有“@”的参数名称?