【发布时间】:2017-05-22 07:15:54
【问题描述】:
我有一个在 IIS 下运行的 REST Web 服务,并且收到了一个从特定 SQL 命令引发的奇怪异常。
查询
insert into locations (lat, lon, dt, owner)
values ('30', '-5', '20170107 16:40:17', 1)
工作正常,但是这个
update locations
set dt = '20170107 16:37:18'
where id = 12817
总是抛出异常
索引(从零开始)必须大于或等于零且小于参数列表的大小。
id 是主键。两个命令都使用相同的代码结构发送:
query = string.Format(result = string.Format("Time updated for {0} at {2}", loc.Owner, DateTime.Now););
try
{
using (System.Data.SqlClient.SqlCommand command = new SqlCommand(query, mapConnection))
{
successRows = command.ExecuteNonQuery();
}
.....
}
catch (Exception ex)
{
....
}
finally
{
....
mapConnection.Close();
}
如果我使用 SQL Server 企业管理器将相同的命令直接发送到服务器,则该命令会按预期完成而不会出现错误。那么asp.net在抱怨什么?
【问题讨论】:
-
您是否进行了调试以找到引发错误的位置?
-
让我看看
query = string.Format中的代码 -
你的 string.format 是问题所在。您能分享一下您是如何构建 INSERT 和 UPDATE 查询的吗?
-
我已经添加了字符串格式的代码。但这并不是我想的那个例外,它只是在之后。我有“if (successRows == 1) result = string.Format("Time updated for {0} at {2}", loc.Owner, DateTime.Now);" - 这就是那里的错误。解决了 - 谢谢@Carcigenicate
标签: c# asp.net sql-server