I will get name of image from database.

All images are in assets.

According to the logic condition image have to change in GUI.DrawTexture.

Which is the best method for this?

You could put your images in the Resources folder
and use:

activeTexture = Resources.Load("myTextureName") as Texture;

...

GUI.DrawTexture(new Rect(...), activeTexture);

You could put the texture into a variable in the draw script. I personally like this because it allows me to swap out things easily, so if you want to field test 4-5 skins you can do that in a few seconds instead of going through the code and renaming things. You could also give the code a string and integrate that into a fetch function that gets textures from the resources folder.