0

良い一日!

私はこのチュートリアルに従っていました - http://www.youtube.com/watch?v=eiSMgy9UciI

私のAndroidアプリケーションをSQL Server 2005に接続しようとしました。アプリケーションはデータベースからデータを取得し、エミュレーターに表示する必要があります。アプリケーションを実行すると、空の画面とメッセージ "" が表示され、コンソールまたは LogCat にエラーは発生しません。

ここに私の first_activity.java コードがあります:

public class First_activity extends Activity {

// creating the objects
Button EXECUTAR;
EditText ValorBusca;
ListView Lista;
Connection connect;
SimpleAdapter AD;

//declaring the objects
    private void declarar()
    {
        EXECUTAR = (Button) findViewById(R.id.btn_buscar);
        ValorBusca = (EditText) findViewById(R.id.txt_buscar);
        Lista = (ListView) findViewById(R.id.list_output);
    }

//initialize objects 
private void inicializar()
{       
    declarar();
ValorBusca.setText("Select ID_pl, pl_name from Planogram_HEAD");
connect = CONN("sa", "Zxc123456", "Market", "10.0.2.2:1433");
}

//create classes
@SuppressLint("NewApi")
private Connection CONN (String _user, String _pass, String _DB, String _server)
{
    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);
    Connection conn = null;
    String ConnUrl = null;
    try {
        Class.forName("net.sourceforge.jtds.jdbc.Driver");
        ConnUrl = "jdbc:jtds:sqlserver://"+ _server + ";" + "databaseName=" + _DB + ";user=" + _user + ";password=" + _pass + ";";
        conn = DriverManager.getConnection(ConnUrl);

    } catch (SQLException se) {
        Log.e("ERROR", se.getMessage());
    } catch (ClassNotFoundException e) {
        Log.e("ERROR", e.getMessage());
    } catch (Exception e) {
        Log.e("ERROR", e.getMessage());
    }
    System.out.println("connected");
    return conn;
}


public void QuerySQL (String COMANDOSQL) {
    ResultSet rs;
    try {
        Statement statement = connect.createStatement();
        rs = statement.executeQuery(COMANDOSQL);
        //configuring of simple Adapter

        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("ID_pl"));
            datanum.put("B", rs.getString("pl_name"));
            data.add(datanum);
        }

        String[] from = {"A", "B"};
        int[] views = {R.id.tex_title, R.id.text_content};
        AD = new SimpleAdapter(this, data, R.layout.model, from, views);
        Lista.setAdapter(AD);
} catch (Exception e) {
        Log.e("ERROR", e.getMessage());
    }

}

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

    inicializar();
    EXECUTAR.setOnClickListener(new OnClickListener () {
        public void onClick(View v){
            QuerySQL(ValorBusca.getText().toString());
        }
    });
}

}

4

1 に答える 1

0

問題が見つかりました。コード全体は正しいです。「インスタンス」を URL に追加し、「SQL Server 構成マネージャー」で ALLIP = 1433 を設定するだけで済みました。

ご清聴ありがとうございました!BR、マクパル

于 2013-07-23T03:10:25.210 に答える