Volgens mij kan het niet, ik heb al goed gezocht, maar toch een poging of hier iemand het definitieve antwoord kan geven:
Ik weet dat ik een value op NULL kan zetten met DBNull.value. Maar de vraag is, wanneer geen nieuw wachtwoord wordt gekozen door de gebruiker wil ik die niet updaten. Kan ik de waarde die in de database zit dus behouden? Zonder bijv een apart SQL query te configureren waarin deze parameter niet zit?
Ik wil dus iets doen als:
C#:
1
2
3
4
5
6
7
| dbcomm = new SqlCommand("UPDATE users SET usr_username = @usr_username, usr_hash = @usr_hash, usr_firstname = @usr_firstname WHERE usr_uid = @usr_uid;", dbconn); [...] dbcomm.Parameters.Add("@usr_username", System.Data.SqlDbType.VarChar, 33); dbcomm.Parameters["@usr_username"].Value = Request.Form["usr_username"].ToString().Trim()); dbcomm.Parameters.Add("@usr_hash", System.Data.SqlDbType.VarChar, 128); [...] |
Ik weet dat ik een value op NULL kan zetten met DBNull.value. Maar de vraag is, wanneer geen nieuw wachtwoord wordt gekozen door de gebruiker wil ik die niet updaten. Kan ik de waarde die in de database zit dus behouden? Zonder bijv een apart SQL query te configureren waarin deze parameter niet zit?
Ik wil dus iets doen als:
C#:
1
2
3
4
| if (Request.Form["action"] == "edit" && Request.Form["usr_password"].ToString().Length == 0) dbcomm.Parameters["@usr_hash"].Value = <<houd waarde hetzelfde>>; else dbcomm.Parameters["@usr_hash"].Value = Hash.Hash.GetHash(Request.Form["usr_password"].ToString().Trim(), Hash.Hash.HashType.SHA512); |