innanzitutto tconsiglio di riscrivere tutto utilizzando correttamente i Parameter. Questo risolverà sicuramente il problema della data, e forse anche l'altro.
é molto importante utilizzare sempre i parameter e non concatenare le stringa della query a mano, perchè eviti problemi di sicurezza (injection) non chè fastidiosi problemi legati alla formattazione del testo (es, apici che se fai a mano vanno sostituiti con \', caratteri accentati, etc.., nonchè il formato della data)
Per esempio:
Codice PHP:
string cmd = "UPDATE ha_stato_civile SET cod_stato_civile=@cod_stato_civile,data_variaz_sc=@data, flag_sc_corrente=@flag WHERE ha_stato_civile.cod_persona=@cod_persona";
Codice PHP:
//per la data:
SqlParameter paramData = new SqlParameter("@data", SqlDbType.DateTime);
paramData.Value= DateTime.Now;
stessa cosa per il dropdown, utilizza innanzitutto il parametro, se poi continua a non funzionare, potresti farmi vedere il codice(markup) della pagina aspx? sei sicuro di aver impostato correttamente le coppie testo/valore del DropDown? se prendi la proprietà miodrop.SelectedValue, ti viene restituito il "valore", non il testo visualizzato, quindi è probabile che se le coppie non sono impostate correttamente non ti viene restituito nulla.
Non c'è bisogno di fare il miadrop.SelectedValue.ToString(), in quanto SelectedValue ti restituisce già stringa.
poi questo concettualmente sbagliato:
Codice PHP:
SqlParameter cod_pers = new SqlParameter("@cod_persona", SqlDbType.Int);
cod_pers.Value = Server.HtmlEncode(TextBox1.Text);
se il parametro è di tipo SqlDbType.Int, devi passare a value il corripondente tipo .NET, cioè un INT.
Essendo che il dropdown o textbox che sia, restituisce string, devi convertirlo.
quindi deve diventare:
Codice PHP:
SqlParameter cod_pers = new SqlParameter("@cod_persona", SqlDbType.Int);
cod_pers.Value = int.Parse(TextBox1.Text)
comincia a sistemare queste cose e mi fai sapere...
ciao
Davide