Getting horizontal movement?

I am trying to get horizontal movement on my 2d game in unity 2.2.2, I amm using the code

using UnityEngine;
using System.Collections;

public class Ctrl : MonoBehaviour

{
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.LeftArrow))
        {
            Vector3 position = this.transform.position;
            position.x--;
            this.transform.position = position;
        }
        if (Input.GetKeyDown(KeyCode.RightArrow))
        {
            Vector3 position = this.transform.position;
            position.x++;
            this.transform.position = position;
        }
        if (Input.GetKeyDown(KeyCode.UpArrow))
        {
            Vector3 position = this.transform.position;
            position.y++;
            this.transform.position = position;
        }
        if (Input.GetKeyDown(KeyCode.DownArrow))
        {
            Vector3 position = this.transform.position;
            position.y--;
            this.transform.position = position;
        }
    }
}

But for some reason it will not work
Please can anybody help me with this

Well I am going to make some assumptions here. I assume that you want to hold down the key for it to move in a direction. I there a reason you are incrementing by one?

First Issue:
You are using GetKeyDown vs GetKey. GetKeyDown will trigger once as soon as the button is pressed and not again until the button is released then pressed again. So if the goal is that you want it to function that one button press moves you 1 unity unit, then you need to use GetKeyDown. GetKey triggers while the button is held. So every update it will give you if the button is still down. I believe this is what you want.

Second Issue:
You are moving by unity units which is probably going to be moving two slow. This is also not framerate independent. Which means that your gameobject wont move as far when the framerate is lower. To make it framerate independent you need to utilized Time.deltatime.

Suggestions:
The more common implementation on this is to use the Input Axis. I will assume you have changed these so you should have Horizontal and Vertical already defined. Here is a simplified version of what I usually uses.

public float speed = 10;

void Update()
{
	Vector3 direction = new Vector3(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"), 0);
	direction.Normalize();
	transform.position = direction * speed * Time.deltatime;
}