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 서버 2008을 사용하고 있음을 언급하는 것을 잊었다. "int"유형의 SQL Server 필드에이 변환을 사용해야합니다. 나는 분명히 희망한다. 다시 한번 감사드립니다. – zack
그것이 작동하지 않는다는 것이 무엇을 의미합니까? 이 데이터를 누가 사용하고 있습니까?저장 프로 시저를 호출하거나 int로 repo 메소드를 호출해야합니까? –
이 int를 SQL Server 2008의 저장 프로 시저에 인수로 전달한다는 의미입니다.하지만이 오류가 발생합니다. "프로 시저 또는 함수 'name_of_SP'에 '@par_name'매개 변수가 제공되지 않았습니다." – zack