Schlagen Sie vor, dies in Ihrem Code-Behind zu tun, bevor Sie es an SQL Server senden.
int userVal = int.Parse(txtboxname.Text);
Versuchen Sie vielleicht zu parsen und lassen Sie es den Benutzer optional wissen.
int? userVal;
if (int.TryParse(txtboxname.Text, out userVal)
{
DoSomething(userVal.Value);
}
else
{ MessageBox.Show("Hey, we need an int over here."); }
Die Ausnahme, die Sie notieren, bedeutet, dass Sie den Wert nicht in den Aufruf der gespeicherten Prozedur einbeziehen. Versuchen Sie, einen Debugger-Haltepunkt in Ihrem Code festzulegen, wenn Sie den Code aufrufen, der den Aufruf von SQL Server erstellt.
Stellen Sie sicher, dass Sie den Parameter tatsächlich an den SqlCommand anhängen.
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();
}
Starten Sie vielleicht den SQL Profiler in Ihrer Datenbank, um die gesendete/ausgeführte SQL-Anweisung zu überprüfen.