Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Convertir le texte de la zone de texte en entier

Suggérez de le faire dans votre code-behind avant de l'envoyer à SQL Server.

 int userVal = int.Parse(txtboxname.Text);

Essayez peut-être d'analyser et éventuellement d'informer l'utilisateur.

int? userVal;
if (int.TryParse(txtboxname.Text, out userVal) 
{
  DoSomething(userVal.Value);
}
else
{ MessageBox.Show("Hey, we need an int over here.");   }

L'exception que vous notez signifie que vous n'incluez pas la valeur dans l'appel à la procédure stockée. Essayez de définir un point d'arrêt du débogueur dans votre code au moment où vous appelez le code qui génère l'appel à SQL Server.

Assurez-vous que vous attachez réellement le paramètre à SqlCommand.

using (SqlConnection conn = new SqlConnection(connString))
{
    SqlCommand cmd = new SqlCommand(sql, conn);
    cmd.Parameters.Add("@ParamName", SqlDbType.Int);
    cmd.Parameters["@ParamName"].Value = newName;        
    conn.Open();
    string someReturn = (string)cmd.ExecuteScalar();        
}

Lancez peut-être SQL Profiler sur votre base de données pour inspecter l'instruction SQL en cours d'envoi/d'exécution.