2017-05-09 4 views
0

상속 한 프로젝트에 문제가 있습니다. 그것은 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# 코드를 통해 데이터 소스를 채우는 경향이 있습니다. 나는 무엇을 놓쳤는가? 아직

+0

당신은 당신의 데이터 소스에 정의 된 선택 매개 변수가 없습니다. –

+0

@SeanLange 페이지에서 매개 변수 코드를 추가했습니다. 이전에 다른 질문을 올렸고 너무 많은 코드를 게시했기 때문에 미안 해요! – Daniel

답변

0

위가 작업을했던 다른 사람들과 반대로이 데이터 그리드에서 나를 위해 작동하지 않는 방법, 나는 그러나 해결책을 찾을 이유에 아무런 피드백 :

protected void ds_Supplier_Selecting(object sender, SqlDataSourceSelectingEventArgs e) 
    { 
     System.Data.Common.DbParameter param = e.Command.CreateParameter(); 
     param.ParameterName = "@BranchID"; 
     param.Value = GetBranchID(); 
     e.Command.Parameters.Add(param); 
    } 

내가로부터 대답을 사용을 this question 그러나 나는 아래의 오류가 발생되었을 때 DbParameter 객체 참조하기 전에 System.Data.Common.를 추가했다 : 이상한 무엇

The type or namespace name could not be found (are you missing a using directive or an assembly reference?) 

비주얼 스튜디오 내가 나타나서 그렇게 CreateParameter() 기능을 인식이었다

t는 DbParameterSystem.Data.Common.을 추가하려고 시도했습니다.

The broken code

관련 문제