사용자가 내 웹에서 구입 한 모든 바구니를 보여주는 그리드보기가 있습니다. 내 그리드는 각 행에 체크 박스가있어 사용자가 여러 개의 바구니를 선택하여 출력 할 수 있습니다 (그 안에있는 항목을 인쇄합니다.) 사용자가 체크 박스를 선택하고 버튼을 클릭하여 출력하면 내 코드는 그리드보기에서 모든 행을 확인하고 저장합니다. 목록에 장바구니 ID를 입력하고 세션에 목록으로 저장하고 인쇄 페이지에서 사용할 수 있습니다. 하지만 내 문제는 여기에 있습니다 : 인쇄 페이지에서 하나의 열로 DataTable을 정의하고 바구니 ID로 채 웁니다. 하지만이 데이터 테이블과 내 선택 쿼리를 조인하는 방법을 모르겠습니다.
이것이 내 쿼리입니다.
sqlQuery="SELECT sale.basketid as id ,sale.discount,ss.LBL as RowNo,sale.ColumnNo,Sale.ID as serial,Sale.Qty "
+ " FROM Sale INNER JOIN SansDate ON Sale.SID = SansDate.SID AND Sale.SansNumber = SansDate.SansNumber"
+ " INNER JOIN Sect ON Sale.SID = Sect.SID INNER JOIN Saloon ON Sect.SaloonID = Saloon.SaloonID left outer join saloonstructure ss on ss.saloonid=saloon.saloonid and ss.rownum=sale.rowno "
+ "where sale.basketid=" + hash.decode(Request.QueryString["param"].ToString()));
그리고 이것은 내 DataTable입니다.
List<string> arraybasket = (List<string>)Session["basketArray"];
DataTable dt = new DataTable();
dt.Columns.Add("bid");
DataRow r = dt.NewRow();
for (int i = 0; i < arraybasket.Count; i++)
{
r["bid"] = arraybasket[i];
dt.Rows.Add(r);
}
단서 나는 내 데이터 테이블 (dt)에 이러한 바구니 ID가있는 항목을 표시하고 싶습니다.
단서 나는 내 데이터 테이블 (dt)에 이러한 바구니 ID가있는 항목을 표시하고 싶습니다.
IN
SQL 연산자를 사용할 수 있습니다 .
에서 문자열을 가져 오기 위해 데이터 테이블을 만들 필요가 없습니다 List<string>
. 사용 basketid
에서 직접 가져 옵니다 .List<string>
string.Join
List<string> arraybasket = (List<string>)Session["basketArray"];
sqlQuery=@"SELECT
sale.basketid as id ,
sale.discount,
ss.LBL as RowNo,
sale.ColumnNo,
Sale.ID as serial,
Sale.Qty
FROM Sale
INNER JOIN SansDate ON Sale.SID = SansDate.SID AND Sale.SansNumber = SansDate.SansNumber
INNER JOIN Sect ON Sale.SID = Sect.SID
INNER JOIN Saloon ON Sect.SaloonID = Saloon.SaloonID
LEFT OUTER JOIN saloonstructure ss on ss.saloonid=saloon.saloonid AND ss.rownum=sale.rowno
WHERE sale.basketid in (" + string.Join(",", arraybasket) + ");";
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다