Je dois obtenir la valeur de la première colonne de la ligne mise à jour. Toutefois, lorsque j'exécute la requête Update ClaimDetails set sStatus='False' OUTPUT inserted.slno as Slno where inVoiceNo='******' and sStatus='True'
dans Management Studio, elle renvoie la bonne valeur. Mais lorsque je tente d'obtenir la valeur en utilisant Executescalar()
retourne nullLa clause de sortie renvoie la valeur mais executescalar renvoie la valeur null dans C#
Mon code:
bool isupdated = false;
int modified=0;
try
{
string updateqry = "Update ClaimDetails set [email protected] OUTPUT inserted.slno as Slno where [email protected] and sStatus='True'";
SqlCommand cmd = new SqlCommand(updateqry, con);
cmd.Parameters.AddWithValue("@sStatus", sStatus);
cmd.Parameters.AddWithValue("@inVoiceNo", inVoiceNo);
connect();
if (cmd.ExecuteNonQuery() > 0)
{
isupdated = true;
//modified = (int)cmd.ExecuteScalar();
object a = cmd.ExecuteScalar();
if (a != null)
modified = Convert.ToInt32(a);
}
}
catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); }
finally { disconnect(); }
return modified;
Quand je modified = (int)cmd.ExecuteScalar();
il m'a donné une erreur d'exception si je object
"cela m'a donné une erreur d'exception" quelle exception cela vous a-t-il donné? –