2016-10-03 10 views
0

에 여러 텍스트 상자에서 입력을 전달하는 방법, 내가 가진 : 여러 줄로 구성된 TextBox 의 GridViewasp.net : asp.net 웹 양식에 TableAdapter에 쿼리

텍스트 상자가 PRODUCT_ID에 대한 항목입니다 버튼을 누릅니다. TextBox에 PRODUCT_ID을 입력하고 버튼을 클릭하면 Product 테이블의 행이 반환되고 GridView에 표시됩니다.

나는 TableAdapter가와 데이터 집합을 만들었습니다. 여기

SELECT  PRODUCT_ID, PRODUCT_NAME 
FROM   TEST.PRODUCT 
WHERE  (PRODUCT_ID = ?) 

코드 것 : 여기 오기 방법에 대한 쿼리입니다

보호 무효 Button2_Click (개체 보낸 사람, EventArgs입니다 전자) { 짧은 ID = short.Parse (TextBox2.Text);

MyDataSetTableAdapters.PRODUCTTableAdapter idDS = new PRODUCTTableAdapter(); 

    MyDataSet.PRODUCTDataTable idDT = idDS.GetID(id); 

    GridView2.DataSource = idDT; 
    GridView2.DataBind(); 
} 

TextBox에 PRODUCT_ID 중 하나만 입력하면 작동합니다. 예를 들어,

난 "8"은 PRODUCT 표의 행을 표시 위치를 입력하면 PRODUCT_ID = 8; PRODUCT_ID = 9

아이디어의 GridView의 텍스트 상자 (하나 또는 다수) 및 디스플레이 일치 행 PRODUCT_ID를 입력이다
I가 "9"를 입력하면, PRODUCT 표의 행을 표시한다.

그러나, 나는 예를 들어, 텍스트 상자에 ID보다 더를 입력하려고 할 때 :

그것은 작동하지 않았다 (다음 버튼을 클릭합니다).

오류 메시지가 말한다 - { "입력 문자열이 올바른 형식이 아닙니다."}

가 어떻게 TableAdapter에 쿼리에 여러 텍스트 상자에서 입력을 통과합니까?

답변

0

당신은 당신의 코드 디자인을 약간 수정해야합니다.

첫째, 문자열을 허용하도록 방법 GetID을 변경합니다.

public void GetID(string ids) 
{ 
    //your code 
} 

둘째로, 멀티 라인 텍스트 입력을 쉼표로 구분 된 문자열로 변경하십시오.

string ids= string.Join(",", TextBox1.Text.Split(' ')); 

셋째, SQL 쿼리 where 절을 변경하십시오.

SELECT  PRODUCT_ID, PRODUCT_NAME 
FROM   TEST.PRODUCT 
WHERE  (PRODUCT_ID in (ids)) 

희망이 도움이됩니다.

+0

감사합니다! 해결책은 합리적입니다. 그러나 SQL 쿼리에 문제가 있습니다. TableAdapter에 쿼리 구성 마법사에서 -> 쿼리 빌더, 나는 – user6913632

+0

그런 다음 클릭 "쿼리 실행" "(?()에서 PRODUCT_ID) TEST.PRODUCT 로부터 PRODUCT_ID, PRODUCT_NAME 선택"에 입력. "Query Parameter"팝업 창에서 "8"(입력시 큰 따옴표가 없음)을 입력하면 작동했습니다. "8,9"를 입력하면 셀에 값이 잘못되었습니다 (1 행 2 열).이 셀의 변경된 값이 유효한 것으로 확인되지 않았습니다. .Net Framework 데이터 형식 : Int32 ". PRODUCT_ID is smallint. 다른 매개 변수 속성 (매개 변수 컬렉션 편집기)을 시도하고 있습니다 ... – user6913632

+0

다음은 Button1_Click()에 대한 코드에서 직접 코드를 추가 해보겠습니다. – user6913632