确认参数名称正确无误:在使用参数时,确保参数名称与SQL语句中的名称相同。如果名称不匹配,则会出现“Item Cannot be Found in Collection”错误。
使用SqlParameter对象:使用SqlParameter对象而不是直接将参数传递给cmd对象可以解决这个问题。这将确保您的代码更安全,更加容易维护。
示例代码:
string sql = "SELECT * FROM myTable WHERE ID = @id";
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(sql, connection))
{
SqlParameter parameter = new SqlParameter("@id", SqlDbType.Int);
parameter.Value = id;
cmd.Parameters.Add(parameter);
connection.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
// Do something with the data
}
}
}
在此示例中,我们使用SqlParameter对象来添加参数,而不是直接将参数传递给cmd.Parameters对象。这将确保我们的参数正确添加到cmd对象中。
最后,请确保在使用cmd对象之前打开数据库连接,并在完成后将其关闭。