3
다음 저장 프로 시저를 호출하는 데 문제가 있습니다. ExecuteReader를 호출하면 'GetAverages2'근처에 'Incorrect syntax'오류가 나타납니다. 저장 프로 시저를 만들고 TSQL에서 호출 할 수 있습니다. CommandType.Text에저장 프로 시저를 호출 할 때 구문 오류가 발생합니다. 문제가 무엇인지 알 수 없습니다.
CREATE PROCEDURE GetAverages2
@CompanySize INT,
@Q1 FLOAT OUT,
@Q2 FLOAT OUT
AS
SELECT @Q1 = 1, @Q2 = 2
GO
string connectionString = ConfigurationManager.ConnectionStrings["MyDbConnection"].ConnectionString;
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand command = new SqlCommand("GetAverages2", connection))
{
command.Parameters.Add("@CompanySize", System.Data.SqlDbType.Int).Value = int.Parse(Request.QueryString["CompanySizeId"]);
command.Parameters.Add("@Q1", System.Data.SqlDbType.Float).Direction = System.Data.ParameterDirection.Output;
command.Parameters.Add("@Q2", System.Data.SqlDbType.Float).Direction = System.Data.ParameterDirection.Output;
connection.Open();
SqlDataReader reader = command.ExecuteReader();
나는 바보입니다. – MedicineMan
그냥 같은 함정에 빠졌습니다. 저장 프로 시저를 사용하는 데 너무 익숙해 져서 원시 SQL을 작성하는 것을 상상할 수 없습니다. 참고로 SQL 2008에서이 시나리오에서 반환 된 오류 메시지는 "프로 시저 또는 함수 ''에 ''매개 변수가 제공되지 않았으므로 기대하지 않습니다." –