2016-10-10 5 views
-4

Mein Name ist Phuc. Ich bin in einem Problem, dass mein Java-Code korrekt in NetBeans funktionierte, aber wenn ich kopiert und in Android Studio eingefügt wurde, nachdem erfolgreich erstellt. Ich lief in mein Telefon (6.0) und es funktionierte nichts. Ich wusste nicht warum. Bitte hilf mir. (Mein Ziel ist es, den Wert von SQL Server in Android 6.0 App senden und empfangen)Java-Code funktioniert ordnungsgemäß in NetBeans, funktioniert aber nicht in Android 6.0

Das ist mein Java-Code:

<package javaapplication1; 

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 
import java.util.ArrayList; 

/** 
* 
* @author Phuc 
*/ 
public class JavaApplication1 { 

    /** 
    * @param args the command line arguments 
    */ 

    private final Connection conn; 



     public JavaApplication1() throws Exception 
     { 
      Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
      String url = "jdbc:sqlserver://asdasdasa.mssql.somee.com;Database=asdasdasa;UserName=cip2017_SQLLogin_2;Password=oev2sm4ken"; 
      this.conn = DriverManager.getConnection(url); 

     } 

     public void thucthi() throws SQLException 
     { 
      Statement stm = this.conn.createStatement(); 
      String sql ="Update Butt set Value = 0 where Index1 = 2"; 
      stm.executeUpdate(sql); 
     } 

     public ResultSet Getdata(String tb) throws SQLException { 
      ResultSet kq = null; 
      Statement stm = this.conn.createStatement(); 
      String sql ="select Value from Varr"; 
      kq = stm.executeQuery(sql); 
      return kq; 
     } 

     public void Close() throws SQLException { 
      if(this.conn != null) 
      { 
       this.conn.close(); 
      } 
     } 

    public static void main(String[] args) throws Exception { 
     JavaApplication1 ccc = new JavaApplication1(); 
      ResultSet rs = ccc.Getdata("Varr"); 
      ArrayList data = new ArrayList(); 
      while (rs.next()) 
      { 
       data.add(rs.getString("Value")); 
      } 
      System.out.println(data.get(3)); 
      ccc.thucthi(); 
      ccc.Close(); 

    } 
} 

Und das ist mein Android-Code:

package com.example.phuc.myapplication; 

import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 
import java.sql.Statement; 

public class MainActivity extends AppCompatActivity { 


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


     final TextView tv1 = (TextView) findViewById(R.id.textView); 

     Button bt1 = (Button) findViewById(R.id.button); 

     bt1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       try { 
        ConnectToDB tt = new ConnectToDB(); 
        tt.thucthi(); 
        tt.Close(); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 
     }); 
} 
    public static class ConnectToDB 

    { 
     private Connection conn; 



     public ConnectToDB() throws Exception 
     { 
      Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
      String url = "jdbc:sqlserver://asdasdasa.mssql.somee.com;Database=asdasdasa;UserName=cip2017_SQLLogin_2;Password=oev2sm4ken"; 
      this.conn = DriverManager.getConnection(url); 
     } 
     public void thucthi() throws SQLException{ 

      Statement stm = this.conn.createStatement(); 
      String sql ="Update Butt set Value = 1 where Index1 = 5"; 
      stm.executeUpdate(sql); 
     } 
     //public ResultSet Getdata(String tb) throws SQLException { 
      //ResultSet kq = null; 
      // Statement stm = this.conn.createStatement(); 
      // String sql ="select Value from Varr"; 
      // kq = stm.executeQuery(sql); 
      // return kq; 
     //} 

     public void Close() throws SQLException { 
      if(this.conn != null) 
      { 
       this.conn.close(); 
      } 
     } 
    } 
} 
+1

http://importblogkit.com/2015/07/does-not-work/ – Biffen

+0

In Android gibt es eine Haupt-Thread ist, die ist verwendet für kurze Operationen und Aktualisierung der Benutzeroberfläche. Wenn Sie einen Netzwerkanruf tätigen möchten, müssen Sie einen neuen Thread aufrufen und von dort aus machen. Alternativ können Sie die Android AsyncTask verwenden. – toshkinl

+0

Hast du die jdbc.jar deines sqlservers hinzugefügt? Außerdem würde ich nicht direkt von der Android-App auf meine Remote-DB zugreifen. Wenn ich Ihre App dekompiliere, finde ich alle Informationen, die ich selbst aufrufen möchte. Verwenden Sie WebService, um einige Wertpapiere hinzuzufügen. – AxelH

Antwort

0

Die AsyncTask Code ist hier:

package com.example.phuc.myapplication; 

import android.os.AsyncTask; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 

import java.sql.Connection; 
import java.sql.SQLException; 
import java.sql.Statement; 

public class MainActivity extends AppCompatActivity { 


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


     final TextView tv1 = (TextView) findViewById(R.id.textView); 

     Button bt1 = (Button) findViewById(R.id.button); 

     bt1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       runOnUiThread(new Runnable() { 
        @Override 
        public void run() { 
         new bebi().execute(); 
        } 
       }); 
      } 
     }); 

} 

    public class bebi extends AsyncTask<String, Integer, String> 
    { 

     @Override 
     protected String doInBackground(String... params) { 

      ConnectToDB tt = null; 
      try { 
       tt = new ConnectToDB(); 
       tt.thucthi(); 
       tt.Close(); 

      } catch (Exception e) { 
       e.printStackTrace(); 
      } 


      return null; 
     } 
    } 


    public static class ConnectToDB 

    { 
     private Connection conn; 



     public ConnectToDB() throws Exception 
     { 

     } 
     public void thucthi() throws SQLException { 
      Statement stm = this.conn.createStatement(); 
      String sql ="select Value from Varr"; 
      stm.executeQuery(sql); 
     } 
     //public ResultSet Getdata(String tb) throws SQLException { 
      //ResultSet kq = null; 
      // Statement stm = this.conn.createStatement(); 
      // String sql ="select Value from Varr"; 
      // kq = stm.executeQuery(sql); 
      // return kq; 
     //} 

     public void Close() throws SQLException { 
      if(this.conn != null) 
      { 
       this.conn.close(); 
      } 
     } 
    } 
} 
Verwandte Themen