具有SQL Server连接的Android Studio中的文本视图内有多个结果

我需要知道如何传递,以及是否有可能在textview内的SQL Server上传递选择的多个结果。

示例:我在表产品中有两个具有相同名称的项目,因此,如果我用此产品的名称执行一次选择,则需要返回2个结果。

Table产品有2个项称为test,因此,如果我通过传递“ test”参数来执行选择,那么我在android studio中的textview需要返回两个“ test”项。

package com.example.projeto;

import androidx.appcompat.app.AppCompatactivity;

import android.content.Intent;
import android.os.Bundle;
import android.os.StrictMode;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class Entraractivity extends AppCompatactivity {

    TextView txtRegistrar;
    TextView txtEntrar;

    EditText edtItem;
    Button btnItem;

    TextView txtView_produtos;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_entrar);

        txtView_produtos = findViewById(R.id.txtView_produtos);


        edtItem = findViewById(R.id.edtItem);
        btnItem = findViewById(R.id.btnItem);

        txtEntrar = findViewById(R.id.txtEntrar);

        txtRegistrar = findViewById(R.id.txtRegistrar);

        btnItem.setOnClicklistener(new View.OnClicklistener() {
            @Override
            public void onClick(View v) {

                agregarUsuario();

            }
        });

        txtEntrar.setOnClicklistener(new View.OnClicklistener() {
            @Override
            public void onClick(View v) {

                Intent menuTela = new Intent(Entraractivity.this,Testeactivity.class);
                startactivity(menuTela);
                finish();

            }
        });

        txtRegistrar.setOnClicklistener(new View.OnClicklistener() {
            @Override
            public void onClick(View v) {

                //Evento ao clicar no txtRegistrar ir para tela de cadastro
                Intent novaTela = new Intent(Entraractivity.this,Registraractivity.class);
                startactivity(novaTela);
                finish();

            }
        });

    }

    public Connection conexionDB() {

        Connection conexion=null;

        try {

            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
            StrictMode.setThreadPolicy(policy);

            Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
            conexion = DriverManager.getconnection("jdbc:jtds:sqlserver://"my-ip";databaseName="mydbname";user=sa;password="mypass";");


        }catch (Exception e) {

            Toast.makeText(getapplicationContext(),e.getMessage(),Toast.LENGTH_SHORT).show();

        }

        return conexion;
    }

    public void agregarUsuario() {



        try {

            PreparedStatement pst=conexionDB().prepareStatement("select xname from tb_product where xname= ?");
            pst.setString(1,edtItem.getText().toString());
            pst.executeQuery();
       //   int rsCount = 0;
            ResultSet rs = pst.executeQuery();

            while (rs.next()){

                rs.getString("xname");
                txtView_produtos.setText(rs.getString("xname"));

            }

         //   do {
         //       if (results) {
         //           ResultSet rs = pst.getResultSet();
         //           rsCount++;
         //           while (rs.next()){
          //              txtView_produtos.setText(rs.getString("xname"));
           //         }

          //      }

        //        results = pst.getMoreResults();
        //    }while (results);

            Toast.makeText(getapplicationContext(),"SELECT DONE",Toast.LENGTH_SHORT).show();

        }catch (SQLException e) {

            Toast.makeText(getapplicationContext(),Toast.LENGTH_SHORT).show();

        }
    }
}

我已经尝试了这两种方法,但是两种方法都会始终返回1个项目。

示例

product
'test'

应该这样返回

product
'test'
'test'

´´´
public void agregarUsuario(){

    try {

        PreparedStatement pst=conexionDB().prepareStatement("select xdescricao from tb_produtos where xdescricao LIKE ?");
        pst.setString(1,'%' + edtItem.getText().toString() + '%');
        ResultSet rs = pst.executeQuery();

        List<Map<String,String>> data = null;
        data = new ArrayList<Map<String,String>>();

        while (rs.next()){

            Map<String,String> datanum = new HashMap<String,String>();
            datanum.put("A",rs.getString("xdescricao"));
            data.add(datanum);

        }

        String[] from = {"A"};
        int [] views = {R.id.txt_titulo};
        simpleAD = new SimpleAdapter(this,data,R.layout.modelo,from,views);
        listView_item.setadapter(simpleAD);

        Toast.makeText(getapplicationContext(),"SELECT DEU CERTO",Toast.LENGTH_SHORT).show();

    }catch (SQLException e) {

        Toast.makeText(getapplicationContext(),Toast.LENGTH_SHORT).show();

    } 

´´´

这行得通,但是我仍然遇到问题,使用listview和simpleAdapter的返回仅向我返回SELECT LIKE的1个结果,该结果有1个以上要在此SELECT中返回,而直接通过数据库查询可以返回5个项目

yujingjean 回答:具有SQL Server连接的Android Studio中的文本视图内有多个结果

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3149759.html

大家都在问