The reason, I believe, most games/gamers use WASD as their movement keys is because of a couple reasons: (a) The general game controller has the directional buttons on the left side, (b) The general gamer(there are exceptions of course) is right-handed, so they control the view with the mouse with the mouse, and movement with the keyboard, so it is much more comfortable for the hand to be near the natural typing position than to move to the other side of the keyboard to control the movement.
as for the topic at hand: I would use the keystate(int ScanCode)(returns 1 if the key is down, and 0 if it's up) command inside an if statement after finding out what scan code the keys have(done with int scancode() command), or you can use the dinput.h header(like Hassan put) to get nice and easy to read directional scan codes.
Eg:
//outside loop
const int W_up=17;
const int S_down=31;
const int A_left=30;
const int D_right=32;
int X=dbScreenWidth()/2;
int Y=dbScreenHeight()/2;
//in main loop
if (dbKeyState(W_up)==1)
{
Y--;
}
if (dbKeyState(S_down)==1)
{
Y++;
}
if (dbKeyState(A_left)==1)
{
X--;
}
if (dbKeyState(D_right)==1)
{
X++;
}
dbCLS();
dbBox(X, Y, X+1, Y+1);
That should give you a box that moves around depending on which key you press.