【发布时间】:2018-09-19 17:24:52
【问题描述】:
当我在 C# 中执行以下代码时,我可以毫无问题地插入一条记录。当我的集合中有两个对象时,我收到以下错误:
变量名称“@scoreboardId”已被声明。变量名称在查询批处理或存储过程中必须是唯一的
有没有办法解决这个批处理异常?
public void insertActiveMonitorsForScoreboard(SqlConnection dbConn, SqlTransaction dbTrans, int scoreboardId,
ObservableCollection<AvailableMonitorBo> availableMonitorsForAddOC)
{
using (SqlCommand dbCommand = new SqlCommand(CreateAndDisplaySQLStrings.INSERT_SCOREBOARD_MONITORS, dbConn))
{
dbCommand.Transaction = dbTrans;
foreach (AvailableMonitorBo bo in availableMonitorsForAddOC)
{
if (bo.IsActive)
{
dbCommand.Parameters.Add("scoreboardId", SqlDbType.Int).Value = scoreboardId;
dbCommand.Parameters.Add("availableMonitorId", SqlDbType.Int).Value = bo.AvailableMonitorId;
dbCommand.ExecuteNonQuery();
}
}
}
}
【问题讨论】:
-
将参数添加移出
foreach循环。
标签: c# sql sql-server