Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Converti il ​​testo della casella di testo in numero intero

Suggerisci di farlo nel tuo code-behind prima di inviare a SQL Server.

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

Forse prova ad analizzare e facoltativamente far sapere all'utente.

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

L'eccezione che noti significa che non stai includendo il valore nella chiamata al processo memorizzato. Prova a impostare un punto di interruzione del debugger nel tuo codice nel momento in cui richiami il codice che compila la chiamata a SQL Server.

Assicurati di allegare effettivamente il parametro a 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();        
}

Forse avvia SQL Profiler sul tuo database per ispezionare l'istruzione SQL inviata/eseguita.