Sintaxis derecha de SqlParameter

Estoy tratando de convertir:

command.Parameters.Add (new SqliteParameter (DbType.Int32) { Value = id });

Para un parámetro normal de Sql:

command.Parameters.Add(new SqlParameter(DbType.Int32) { Value = id });

He logrado convertir todas las líneas ahora, además de esta, tengo estos errores:

Error   3   Argument 1: cannot convert from 'System.Data.DbType' to 'object[]'
Error   2   The best overloaded method match for 'System.Data.SqlClient.SqlParameter.SqlParameter(object[])' has some invalid arguments

Código de función completo:

public User GetUser(int id)
{
    var u = new User();
    lock (locker)
    {
        connection = new SqlConnection("Data Source=" + path + ";Initial Catalog=DB;User ID=sa;Password=***********th");
        connection.Open();
        using (var command = connection.CreateCommand())
        {
            command.CommandText = "Select * from tblUsers WHERE UserID = ?";
            command.Parameters.Add(new SqlParameter(DbType.Int32) { Value = id });
            var r = command.ExecuteReader();
            while (r.Read())
            {
                u = FromReader(r);
                break;
            }
        }
        connection.Close();
    }
    return u;
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta