Jon Skeet is true about IV, but you also have a problem with how you retrieve the key.
Just using one SHA256 round on an unencrypted password is not secure. This leaves the system open to a simple dictionary attack.
There is a class of functions designed to receive a plaintext password and create an encryption key from them - these are “key derivation functions”. You should use one of them - PBKDF2 - a good choice is to generate your key. The Rfc2898DeriveBytes class implements PBKDF2.
KDF will require a salt that is randomly generated each time and is included along with the encryption text (like IV).
source share