【发布时间】:2015-03-26 05:18:36
【问题描述】:
我无法弄清楚这段代码有什么问题。我正在清除所有参数,然后添加它们,但它仍然给我错误提示“SqlParameter 已包含在另一个 SqlParameterCollection 中。”
请帮忙
using (SqlConnection m_Connection = Class_SetApplicationEnviroment.Get_Sql_Connection())
{
m_Connection.Open();
SqlCommand oSqlCommand = new SqlCommand(m_spName, m_Connection);
oSqlCommand.CommandType = CommandType.StoredProcedure;
if (m_Parameters.Length > 0)
{
//SQLDataAdapter.SelectCommand.Parameters.Clear();
oSqlCommand.Parameters.Clear();
foreach (SqlParameter oParam in m_Parameters)
{
if (oParam != null)
{
// Check for derived output value with no value assigned
if ((oParam.Direction == ParameterDirection.InputOutput ||
oParam.Direction == ParameterDirection.Input) &&
(oParam.Value == null))
{
oParam.Value = null;
}
oSqlCommand.Parameters.Add(oParam);
//SQLDataAdapter.SelectCommand.Parameters.Add(oParam);
}
}
}
//Execute the Stored Procedure
//SQLDataAdapter.Fill(myTable);
strReturnValue = oSqlCommand.ExecuteNonQuery().ToString();
m_Connection.Close();
}
}
【问题讨论】:
-
你的例外说明了一切。
-
我猜这是你没有找到的重复:stackoverflow.com/questions/7837762/… 问题不是参数已经在这个命令的参数集合中,而是在不同的地方。
-
检查 m_parameters 中的内容?我的猜测是那里有一个重复。
-
@Jeremy:那么异常不会是“已经被另一个包含”,而是“已经包含在这个”。跨度>
-
我确实检查了参数是否返回任何重复项。它没有返回任何重复项。但它发生在正在添加的第一个参数(清除参数之后)。
标签: sql sql-server sql-server-2008 c#-4.0