Foreslå at gøre dette i din kode bag, før du sender ned til SQL Server.
int userVal = int.Parse(txtboxname.Text);
Prøv måske at parse og eventuelt lade brugeren vide det.
int? userVal;
if (int.TryParse(txtboxname.Text, out userVal)
{
DoSomething(userVal.Value);
}
else
{ MessageBox.Show("Hey, we need an int over here."); }
Den undtagelse, du bemærker, betyder, at du ikke inkluderer værdien i opkaldet til den lagrede proc. Prøv at indstille et debugger-breakpoint i din kode på det tidspunkt, du kalder ned i koden, der bygger opkaldet til SQL Server.
Sørg for, at du rent faktisk vedhæfter parameteren til 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();
}
Du kan måske starte SQL Profiler på din database for at inspicere den SQL-sætning, der sendes/udføres.