상속 한 프로젝트에 문제가 있습니다. 그것은 DevExpress를 사용하고 몇몇 그리드는 데이터 소스를 채우는 C# 코드를 가지고 있고 다른 것들은 간단한 (ish) select를 실행하고 쿼리를 실행하는 ASP 코드를 가지고 있습니다.SQL 쿼리에 매개 변수를 전달하는 중 문제가 발생했습니다. OnSelecting 이벤트
그리드 중 하나가 너무 많은 정보를 표시하고 (선택 쿼리가 제대로 작성되지 않았습니다) 사용자가 사용할 수있는 옵션이 너무 많습니다. 이것은 간단한 where
절로 수정 될 것이지만 내 구현이 작동하지 않는 이유에 관해서는 분실했습니다. 이 페이지에는 동일한 기술을 사용하는 세 개의 다른 격자가 있지만 복사하려고 할 때 작동하지 않습니다.
ASP :
<asp:SqlDataSource
ID="ds_Supplier" runat="server"
ConnectionString="<%$ ConnectionStrings:Portal_ConnectionString %>"
OldValuesParameterFormatString="original_{0}"
SelectCommand="SELECT [SupplierID], [SupplierName] FROM [tbl_Supplier] where BranchID = @BranchID"
OnSelecting="ds_Supplier_Selecting">
</asp:SqlDataSource>
<SelectParameters>
<asp:Parameter DefaultValue="0" Name="BranchID" Type="Int32" />
</SelectParameters>
C 번호 :이 아래의 SQL 오류가 발생
protected void ds_Supplier_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{
e.Command.Parameters["@BranchID"].Value = GetBranchID();
}
:
An SqlParameter with ParameterName '@BranchID' is not contained by this SqlParameterCollection
혼란스러운 것은, 그 그리드입니다 바로 위에 있고 그 아래에 같은 논리를 따르고 번거 로움없이 작업하십시오. 다른 비슷한 질문을 보았지만이 시나리오에 실제로 적용되지 않는 C# 코드를 통해 데이터 소스를 채우는 경향이 있습니다. 나는 무엇을 놓쳤는가? 아직
당신은 당신의 데이터 소스에 정의 된 선택 매개 변수가 없습니다. –
@SeanLange 페이지에서 매개 변수 코드를 추가했습니다. 이전에 다른 질문을 올렸고 너무 많은 코드를 게시했기 때문에 미안 해요! – Daniel