ado.net에서이 오류는 "여러 부분으로 구성된 식별자"를 해결하는 방법은 SQL 서버에서 잘 작동 2008하지만 ADO.NET에 연결할 때,이 오류 보여줍니다내가 쿼리 다음 한
을The multi-part identifier "v.ClientId" could not be bound.
The multi-part identifier "v.ClientId" could not be bound.
The multi-part identifier "v.ClientID" could not be bound.
The multi-part identifier "v.Fare" could not be bound.
The multi-part identifier "v.ClientId" could not be bound.
검색어 :
SELECT
f.ID, f.ClientID, vc.Name,
f.Fare as FixFares, v.Fare as VehicleFare,
f.FromPostCode, f.ToPostCode, f.[From], f.[To],
v.ClientId, v.IsActive, v.VehicleID, vc.ID
FROM
VehicleFixeFare AS v
INNER JOIN
FixFare f ON v.ClientId = f.ClientId
INNER JOIN
Vehicle vc ON v.ClientId = vc.ClientId
WHERE
v.ClientID = 159
코드 나는 다음과 같은 코드를 할 것
conn = new SqlConnection(Connection1);
conn.Open();
// var LIST=(from a in General.GetQueryable<Ve>)
string Query = "select f.ID, f.ClientID, vc.Name, f.Fare as FixFares, v.Fare as VehicleFare, f.FromPostCode, "+
"f.ToPostCode, f.[From], f.[To], v.ClientId, v.IsActive, v.VehicleID, vc.ID " +
"from VehicleFixeFare as v"+
"inner join FixFare f on v.ClientId = f.ClientId inner join Vehicle vc on v.ClientId = vc.ClientId where v.ClientID =" + ClientID;
SqlDataAdapter ad = new SqlDataAdapter(Query, conn);
dt = new DataTable();
ad.Fill(dt);
문자열을 보면 'VehicleFixeFare as v'의 별칭과 'inner join'사이에 공백이 없음을 알아야합니다. 또한 잠재적 인 SQL 주입 공격을 막기 위해 쿼리를 변경하는 것이 좋습니다. 클라이언트 ID가 freetype이거나 사용자가 어떤 방식 으로든 조작 할 수 있다면 잠재적으로 위험 할 수 있습니다. 이것을 매개 변수로 변경하십시오. –
저장 프로 시저를 만듭니다. 최소한 ClientID는 매개 변수로 만들어야합니다. –