Предложите сделать это в своем коде перед отправкой на SQL Server.
int userVal = int.Parse(txtboxname.Text);
Возможно, попробуйте разобрать и, при необходимости, сообщить об этом пользователю.
int? userVal;
if (int.TryParse(txtboxname.Text, out userVal)
{
DoSomething(userVal.Value);
}
else
{ MessageBox.Show("Hey, we need an int over here."); }
Исключение, которое вы отмечаете, означает, что вы не включаете значение в вызов хранимой процедуры. Попробуйте установить точку останова отладчика в вашем коде в момент вызова в код, который создает вызов SQL Server.
Убедитесь, что вы действительно прикрепляете параметр к 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();
}
Возможно, в вашей базе данных может быть запущен SQL-профилировщик SQL для проверки отправленного/выполняемого оператора SQL.
Я забыл упомянуть, что я использую SQL Server 2008 в серверной. Мне нужно использовать это преобразование для моего поля sql server, которое имеет тип «int». Надеюсь, я поняла. Еще раз спасибо. – zack
Что значит, что он не работает? Кто использует эти данные?Вы вызываете хранимую процедуру или нужно вызвать метод репо с int? –
Я имею в виду, что я передаю этот int как аргумент хранимой процедуры в sql server 2008. Но я получаю эту ошибку. «Процедура или функция 'name_of_SP' ожидает параметра '@par_name', который не был указан." – zack