2011-10-07 4 views
0

내가 좋아하는 뭔가를 보이는 SqlDataAdapter를 가지고 몇 가지 더 많은 곳 문에 포함되어있다이 SqlDataAdapter에서 사용할 항목은 무엇입니까?

("Select prodID, CatalogType, prodName, catID, Integration, ItemProfileCatalogID From ShoppingCart t1 
INNER JOIN ItemCatalogProfile t2 ON t1.CatalogType = t2.CatalogType 
WHERE SessionID = '" + Session["ID"] + "' AND CatalogID ='" + Session["Customer"] ....) 

,하지만 내가 일을 얻이 수없는 것 하나는 다음과 같습니다

ItemProfileCatalogID .. 

내가 필요 이 항목을 각 항목 중 하나만 범위를 좁히기 위해 포함하면이 문에서 사용할 항목을 파악할 수 있으면이 변수가이를 수행합니다. 내가

viewstate[""] 
Request.QuerryString[""] 
Session[""] 

을 시도하고 나는 그 작동시킬 것 캔트

..

오전 데 문제가, 내가 필터링이 항목이없는 경우 현재 쇼핑 카트 , 다른 카탈로그에 대해 하나의 항목이 최대 250 개 목록에 있고 ItemProfileCatalogID가있는 항목이 하나의 항목으로 필터링되므로 하나의 항목으로 필터링합니다.

어떤 제안?

+0

오류 메시지가 있습니까? – Purplegoldfish

+0

무슨 문제가 있습니까? 오류 메시지입니까? –

+1

나는 당신이 무엇을 요구하고 있는지 완전히 모르겠다. 그러나 나는 SQL 문을 생성하기 위해 문자열 연결을 사용하지 말아야한다는 것을 알고있다. 특히 쿼리 문자열에서 오는 경우 [SQL Injection] (http://en.wikipedia.org/wiki/SQL_injection)을 참조하십시오. –

답변

1

CatalogID 아마도 숫자 당신을 감사하고 당신은 당신의 SQL 문에서 문자열로 사용하고 있습니다.

그것은 또한 당신은 모든 문자열 연결이 나쁜 문자 (예를 들어 ') 또한

을 포함하거나 인해 CatalogID에가는 쉽게 감지되지 SQL 문에 일부 구문 오류가 있는지 수, 확인하시기 바랍니다 parametrized 검색어; SQL 문을 작성할 때 일반적으로 병합은 매우 좋은 생각이 아닙니다 (SQL injection).

+0

이 제거되었고 숫자가 맞습니다. 지금은 얻고 있습니다 : '개체 참조가 인스턴스로 설정되지 않았습니다. 개체 '그래서 그것은 실제로 아무것도 반환하지 않습니다에서 오는 것 같아요 –

1

InBetween은 숫자로 된 문제 일 가능성이 높으므로 .toString() 메서드를 사용하여이 문제를 해결할 수 있어야합니다.

또한 저장 프로 시저가 여러 가지 이유로 일반적으로 더 사용하기에 좋습니다. 귀하가 전자 상거래 응용 프로그램을 제안하는 장바구니를 사용 중이라고 언급 한 경우? 여기서 저장 프로 시저를 사용하면 SQL을 실행할 때마다 SQL이 select 문을 컴파일 할 필요가 없으므로 성능이 향상되고 저장 프로 시저의 코드를 사용하면 유지 관리가 향상되고 다른 곳에서도 프로 시저를 재사용 할 수 있습니다.

여기에 실제로 네트워크를 통해 선택 진술을 전송하지 않으므로 아무도이를 가로 채고 테이블 구조에 대한 통찰력을 얻을 수 없으므로 보안을 강화할 수 있습니다. 위에서 언급 한 InBetween 저장 프로 시저를 사용하면 주입 공격으로부터 보호 할 수 있습니다 오류 처리를보다 쉽게 ​​추가 할 수 있으므로 단순히 데이터를 읽지 않아도됩니다.

+0

나는 성공과 함께 .ToString() 메서드를 사용하여 시도했다. 이 함수는 먼저 제대로 작동하도록하고 싶습니다. 일단 완료되면 Stored Proc 생성 및 구현에 집중할 수있게 될 것입니다. ViewState를 제안 하시겠습니까? 아니면 변수를 가져 오기 위해 사용해야합니까? –

관련 문제