2011-08-23 2 views
0

CheckBoxList 및 Listbox (다중 선택 사용)와 같은 몇 가지 컨트롤이있는 웹 페이지를 작성합니다. 이러한 컨트롤은 SQL 데이터베이스 테이블에 연결됩니다. 하나는 색상 용이고 다른 하나는 크기 용입니다. 쿼리를 디자인하는 가장 좋은 방법은 무엇입니까? 주로 사용자가 선택한 크기 및 색상과 일치하는 gridview에 나열된 셔츠를 필터링하는 'where'문입니다. 예를 들어, 사용자가 colorsCheckBoxList에서 red 및 blue를 확인하고 sizesListbox에서 medium 및 large을 선택한 경우 gridview는 중간 크기 및 큰 크기의 파란색 셔츠와 빨간색 및 중간 크기의 셔츠 만 표시합니다. 나는 대부분의 작업을했는데, 나는 'Where'절을 디자인하는 최선의 방법을 생각할 수 없다. 컨트롤 당 하나의 선택 만 허용하면 쉽게 만들 수 있지만 다중 선택을 허용하는 것이 좋습니다.ASP, C# 및 SQL 복합 매개 변수/쿼리 예를주세요

이것은 페이지가 '코드 숨김'인 .aspx 페이지 (C#)입니다. 필자는 매개 변수를 사용하여 코드와 보안을 유지하는 가장 좋은 방법이라고 읽었지만 다른 사람들의 의견을 듣고 싶습니다.

더 자세한 정보를 알려주십시오.이 질문과 관련하여 많은 시간을 내 주시면 감사하겠습니다.

+1

더 많은 정보가 필요합니다 : 스키마/테이블 구조? –

+0

스키마를 공유하려면 어떻게해야합니까? – Jacob

답변

0

예 SQL 인젝션의 위험을 제거하려면 항상 SQL 매개 변수를 사용하십시오. 데이터베이스 스키마를 보면서 필요한 것을 말할 수는 없습니다. 여기 당신의 경우에 내가 할 일이 있습니다.

SELECT shirtid, shirtname 
FROM shirts 
WHERE colorID IN (REDSHIRTID, BLUESHIRTID) 

선택 상자에서 ID를 REDSHIRTID 및 BLUESHIRTID로 지정합니다.

0

테이블 값 또는 XML 매개 변수를 사용하여 크기 및 색상에 대해 여러 ID를 전달할 수 있습니다. 개인적으로 테이블 반환 매개 변수를 선호합니다.

0

선택 사항은 크기와 색상에 따라 둘 다 선택할 수 있습니다. 저장 프로 시저로 운동 할 수 있습니다 (또한 더 빨라집니다). 매개 변수를 sp에 전달하는 동안 두 매개 변수 모두에 대해 문자 쉼표로 구분 된 문자열, '빨강, 파랑, 녹색'의 경우이 세 가지를 선택하십시오. 색상은 동일합니다. 먼저 분할하여 매개 변수를 분리해서 할 수 SP에서 ','및 질의

로 // 생성 SP

// 패스 매개 변수의 색상과 크기

가 // SP에게

을 시작 이름 // 어쩌면 문에 대한 다음

SELECT col1, col2, col3 from shirts 
    WHERE size IN (separated param list) AND 
    color IN (separated param list of colors) 

// 최종 SP

,536에서 분할 있었던 파라미터 코드 쓰기