Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Converter texto da caixa de texto em inteiro


Sugira fazer isso em seu code-behind antes de enviar para o SQL Server.
 int userVal = int.Parse(txtboxname.Text);

Talvez tente analisar e, opcionalmente, informe o usuário.
int? userVal;
if (int.TryParse(txtboxname.Text, out userVal) 
{
  DoSomething(userVal.Value);
}
else
{ MessageBox.Show("Hey, we need an int over here.");   }

A exceção que você observa significa que você não está incluindo o valor na chamada para o proc armazenado. Tente definir um ponto de interrupção do depurador em seu código no momento em que você chamar o código que cria a chamada para o SQL Server.

Verifique se você está realmente anexando o parâmetro ao 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();        
}

Talvez inicie o SQL Profiler em seu banco de dados para inspecionar a instrução SQL que está sendo enviada/executada.