2017-02-24 3 views
-1

ASP.Net을 사용하여 데이터베이스에서 여러 텍스트 상자를 검색하려면 어떻게합니까?데이터베이스에서 여러 텍스트 상자를 검색하는 방법

보호 무효 SearchButton_Click (개체 보낸 사람, EventArgs입니다 전자) {경우 (RefNo.Text == "@search") { 문자열 STR = "[상품 번호 #]를 선택, [회사 명], [체벌 필수 ], [서비스 설명], 기관, PSP_Report의 [Award Date] (여기서 [ITEM NO #]는 '%'+ @search + '%') "; SqlCommand xp = 새 SqlCommand (str, con); xp.Parameters.Add ("@ search", SqlDbType.NVarChar) .Value = RefNo.Text; con.Open(); xp.ExecuteNonQuery(); SqlDataAdapter da = 새 SqlDataAdapter(); da.SelectCommand = xp; DataSet ds = new DataSet(); da.Fill (ds, "ITEM No #"); Search.DataSource = ds; Search.DataBind(); con.Close(); } else (CompanyName.Text == "@searche") { 문자열 str = "[ITEM No #], [회사 이름], [징계가 필요함], [서비스 설명], 기관, [수상 일자 ] from PSP_Report where ([Company Name] like '%'+ @searche + '%') "; SqlCommand xp = 새 SqlCommand (str, con); xp.Parameters.Add ("@ search", SqlDbType.NVarChar) .Value = RefNo.Text; con.Open(); xp.ExecuteNonQuery(); SqlDataAdapter da = 새 SqlDataAdapter(); da.SelectCommand = xp; DataSet ds = new DataSet(); da.Fill (ds, "Company Name"); Search.DataSource = ds; Search.DataBind(); con.Close(); } } } 내 이해를 바탕으로

+0

무엇이 당신의 질문입니까? 세부 사항을 추가하십시오. 우리는 당신이하고 싶은 것을 짐작할 수 없습니다. – NicoRiff

+0

하나 이상의 텍스트 상자를 검색하는 것처럼 보입니다. 당신은 더 깨끗한 방법을 요구하고 있습니까? 아니면 코드에 깨지는 것이 있습니까? 질문에 대답하기 위해 여기에 많은 세부 사항이나 설명이 없습니다 ... 적어도 빠른 훑어보기가 아닙니다. –

+0

코드가 의미가 없습니다. RefNo.Text가'@ search'와 같으면'@ search'와 같은 값을 가진'@ search'라는 매개 변수를 추가합니다. else 블록에도 오류가 있습니다. '@ searche'를 사용하지만 여전히'@ search'라는 이름의 매개 변수를 추가합니다 – Steve

답변

0

, 난 당신이 검색 GUI에서 여러 텍스트 상자가 있다고 가정하고, 동적으로 사용자 입력에 따라 선택 문을 작성하고자합니다.

한 가지 방법은 다음과 같습니다. 당신이 원하는 것이 무엇인지 확실하다면 당신의 생성 된 선택으로 당신의 쿼리를 실행할 방법을 가져야합니다.

protected void SearchButton_Click(object sender, EventArgs e) 
    { 
     string str = "Select [ITEM No#], [Company Name], [Discipline Required], [Service Description], Institution, [Award Date] from PSP_Report where 1=1 "; 

     if (!string.IsNullOrWhiteSpace(RefNo.Text)) 
     { 
      str += $" and ([ITEM NO#] like '%'{RefNo.Text}'%')";     
     } 
     if (!string.IsNullOrWhiteSpace(CompanyName.Text)) 
     { 
      str += $" and ([Company Name] like '%'{CompanyName.Text}'%')"; 
     } 

PS :

  • 하는 SQL 주입에 대해 알고 있어야합니다.

  • 필자는 열 이름에 # 또는 공백을 사용하지 않을 것입니다.

관련 문제