2015-11-28 176 views
0

我在從結果集中獲取想要的結果時出現問題。我不知道如何編碼。我的問題是我有一個具有將被提供,但文本框進入4問號的查詢,但我不知道如何編寫它...代碼使用Java搜索SQL數據庫(多文本字段搜索)

  String descr = desc.getText(); 
      String mat = matl.getText(); 
      String siz = size.getText(); 
      String prod = product.getText(); 

      String sql = "SELECT DISTINCT [Filename], [Path], D.LatestRevisionNo From Documents D INNER JOIN [dbo].[DocumentsInProjects] DP ON DP.DocumentID = D.DocumentID INNER JOIN [dbo].[Projects] P ON DP.ProjectID = P.ProjectID INNER JOIN [dbo].[VariableValue] VV ON VV.DocumentID = D.DocumentID WHERE (VV.variableID = 79 AND VV.ValueText = ?) OR (VV.variableID = 92 AND VV.ValueText = ?) OR (VV.variableID = 328 AND VV.ValueText = ?) OR (VV.variableID = 351 AND VV.ValueText = ?) GROUP BY D.Filename, P.Path, D.LatestRevisionNo HAVING COUNT(DISTINCT ValueText) = 4 AND Filename LIKE '%sld%' order by d.filename"; 
      String host = "jdbc:sqlserver://localhost:1433;databaseName=AWC_Vault;user=SVC_equivaq_cache;password=NMVBm5a5n7zURnfp0K4y;"; 
      con = DriverManager.getConnection(host); 
      PreparedStatement pstmt = con.prepareStatement(sql); 
      pstmt.setString(1, descr); 
      pstmt.setString(2, mat); 
      pstmt.setString(3, siz); 
      pstmt.setString(4, prod); 
      set = pstmt.executeQuery(); 

如何鏈接的DESCR,墊子,siz,刺激'?'標記在SQL字符串和我正確使用PreparedStatement?

+0

Php對於這個任務來說好得多 –

+0

你的代碼看起來相當正確,它不起作用嗎? – Kayaman

+0

單擊該按鈕時,不會將任何值輸出到textarea –

回答

0

你必須檢查你的列類型的數據庫,並用正確的方法鏈接你的論點

例如:如果墊爲int

,你必須使用

pstmt.setInt(2, Integer.parsInt(mat)); 

好運