저장 프로 시저를 실행하는 데 문제가 있습니다 ...이 자동 생성 t-sql 쿼리의 문제점은 무엇입니까?
저장 프로 시저를 호출하려고하는 C# 코드가 있습니다. 그것은 다음과 같이 다소 같습니다
DataTable myDataTable = new DataTable();
using (SqlConnection connection = new SqlConnection(myConnectionString))
{
SqlCommand selectCommand = new SqlCommand("MyStoredProc", connection);
selectCommand.Parameters.Add(new SqlParameter("@myGuid", myGuid));
SqlDataAdapter da = new SqlDataAdapter(selectCommand);
da.Fill(myDataTable);
}
내가 그것을 실행할 때, 나는 "근처의 구문이 잘못되었습니다 'MyStoredProc'"라는 오류를 얻을. 저도 같은 일을하려고하면 나도 같은 오류가 발생,
exec sp_executesql
N'MyStoredProc',
N'@myGuid uniqueidentifier',
@myGuid='FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF'
있는지를 충분히 : 나는 SqlProfiler을 실행하면
은, 나는 이런 식으로 내 저장된 프로 시저를 실행하려는 것 것을 알 수있다. 따라서 내 질문은 다음과 같습니다.
- 생성 된 쿼리에는 어떤 문제가 있습니까?
- 왜 C#이 잘못된 쿼리를 생성합니까? 내 C# 코드에서 뭔가 잘못 했니?
편집 : Agent_9191 내가 어리석게의 StoredProcedure로 SelectCommand에 유형을 설정하는 문을 떠난다 ... 그것을 못을 박았다. 새로 생성 된 쿼리는 다음과 같습니다.
exec MyStoredProc @myGuid='FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF'
이 작업은 정상적으로 작동합니다.
오류가 발생하는 실제 저장 프로 시저를 표시하십시오. 내 직감은 C# 코드가 아니라 SQL에 문제가 있다는 것입니다. –
@Josh : nope ... 그게 아니야 ... 'MyStoredProc'을 임의의 문자열 (존재하지 않는 proc 디렉토리)으로 대체 할 수 있으며 여전히 오류가 발생합니다 ... 실제로 구문 오류입니다. 호출. – Beska