Stel voor om dit in je code-behind te doen voordat je het naar SQL Server stuurt.
int userVal = int.Parse(txtboxname.Text);
Probeer het misschien te ontleden en laat het de gebruiker eventueel weten.
int? userVal;
if (int.TryParse(txtboxname.Text, out userVal)
{
DoSomething(userVal.Value);
}
else
{ MessageBox.Show("Hey, we need an int over here."); }
De uitzondering die u opmerkt, betekent dat u de waarde niet opneemt in de aanroep naar de opgeslagen procedure. Probeer een debugger-onderbrekingspunt in uw code in te stellen op het moment dat u de code aanroept die de aanroep naar SQL Server bouwt.
Zorg ervoor dat u de parameter daadwerkelijk aan de SqlCommand koppelt.
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();
}
Start misschien SQL Profiler op uw database om de SQL-instructie te inspecteren die wordt verzonden/uitgevoerd.