关于ZAKER 融媒体解决方案 合作 加入

java- 如何将 Android Studio 与 SQL Server 数据库连接 .

CocoaChina 10-22

我们目前遇到的问题与此处相同:How to connect Android Studio with SQL Server database, 但尚未得到解答 .

我们还使用 sqljdb4.jar 文件在 Eclipse 上成功建立了连接 , 我们在 android 上尝试了与 Eclipse 中相同的代码 , 但仅在 Eclipse 上有效 .

我们还尝试了另一个驱动程序 jtds1.3.1.jar, 但它也不起作用

我们用 x 和 y 替换了登录名和密码 ; )

protected void onCreate ( Bundle savedInstanceState ) { super.onCreate ( savedInstanceState ) ; setContentView ( R.layout.activity_flux_sequence ) ; String url = "jdbc:jtdc:sqlserver://vps342074.ovh.net/IZY309"; //String url = "jdbc:jtdc:sqlserver://vps342074.ovh.net/MSSQLSERVER;databaseName=IZY309"; //String url = "jdbc:sqlserver://vps342074.ovh.netMSSQLSERVER;databaseName=IZY309"; String user = "x"; String pass = "y"; try { //TextView textViewToChange = ( TextView ) findViewById ( R.id.textViewCol5 ) ; //textViewToChange.setText ( "Hello" ) ; Class.forName ( "net.sourceforge.jtds.jdbc.Driver" ) ; Connection con = DriverManager.getConnection ( url, user, pass ) ; Statement statement = con.createStatement ( ) ; ResultSet resultat = statement.executeQuery ( "SELECT CATEGORIE FROM dbo.PPROFIL WHERE CATEGORIE = 'ac' " ) ; while ( resultat.next ( ) ) { String result = resultat.getString ( 1 ) ; TextView textViewToChange = ( TextView ) findViewById ( R.id.textViewCol5 ) ; textViewToChange.setText ( result ) ; Log.d ( "My Custom Tag", result ) ; }resultat.close ( ) ; statement.close ( ) ; } catch ( SQLException e ) { // TODO Auto-generated catch block e.printStackTrace ( ) ; } catch ( ClassNotFoundException e ) { e.printStackTrace ( ) ; }}private static void close ( Connection con ) { // TODO Auto-generated method stub close ( con ) ;}

这是返回的错误:

W/System.err: java.sql.SQLException: No suitable driver02-15 14:34:01.896 4180-4180/com.example.gaetan.fluxsequence W/System.err: at java.sql.DriverManager.getConnection ( DriverManager.java:186 ) 02-15 14:34:01.896 4180-4180/com.example.gaetan.fluxsequence W/System.err: at java.sql.DriverManager.getConnection ( DriverManager.java:213 ) 02-15 14:34:01.896 4180-4180/com.example.gaetan.fluxsequence W/System.err: at com.example.gaetan.fluxsequence.flux_sequence.onCreate ( flux_sequence.java:32 ) 02-15 14:34:01.896 4180-4180/com.example.gaetan.fluxsequence W/System.err: at android.app.Activity.performCreate ( Activity.java:6876 ) 02-15 14:34:01.896 4180-4180/com.example.gaetan.fluxsequence W/System.err: at android.app.Instrumentation.callActivityOnCreate ( Instrumentation.java:1135 ) 02-15 14:34:01.896 4180-4180/com.example.gaetan.fluxsequence W/System.err: at android.app.ActivityThread.performLaunchActivity ( ActivityThread.java:3207 ) 02-15 14:34:01.896 4180-4180/com.example.gaetan.fluxsequence W/System.err: at android.app.ActivityThread.handleLaunchActivity ( ActivityThread.java:3350 ) 02-15 14:34:01.896 4180-4180/com.example.gaetan.fluxsequence W/System.err: at android.app.ActivityThread.access$1100 ( ActivityThread.java:222 ) 02-15 14:34:01.896 4180-4180/com.example.gaetan.fluxsequence W/System.err: at android.app.ActivityThread$H.handleMessage ( ActivityThread.java:1795 ) 02-15 14:34:01.896 4180-4180/com.example.gaetan.fluxsequence W/System.err: at android.os.Handler.dispatchMessage ( Handler.java:102 ) 02-15 14:34:01.896 4180-4180/com.example.gaetan.fluxsequence W/System.err: at android.os.Looper.loop ( Looper.java:158 ) 02-15 14:34:01.896 4180-4180/com.example.gaetan.fluxsequence W/System.err: at android.app.ActivityThread.main ( ActivityThread.java:7229 ) 02-15 14:34:01.896 4180-4180/com.example.gaetan.fluxsequence W/System.err: at java.lang.reflect.Method.invoke ( Native Method ) 02-15 14:34:01.896 4180-4180/com.example.gaetan.fluxsequence W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run ( ZygoteInit.java:1230 ) 02-15 14:34:01.896 4180-4180/com.example.gaetan.fluxsequence W/System.err: at com.android.internal.os.ZygoteInit.main ( ZygoteInit.java:1120 )

最佳答案

建立连接之前 , 必须添加两行代码:

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

完整代码如下: ( 可能是 )

package com.ipvsoft.sendsms.utility;import android.os.StrictMode;import android.util.Log;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class SQLConnection { private static final String LOG = "DEBUG"; private static String ip = "192.168.3.85"; private static String port = "1433"; private static String classs = "net.sourceforge.jtds.jdbc.Driver"; private static String db = "THTData"; private static String un = "sa"; private static String password = "admin"; public static Connection connect ( ) { Connection conn = null; String ConnURL = null; StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder ( ) .permitAll ( ) .build ( ) ; StrictMode.setThreadPolicy ( policy ) ; try { Class.forName ( classs ) ; ConnURL = "jdbc:jtds:sqlserver://" + ip +":"+port+";" + "databaseName=" + db + ";user=" + un + ";password=" + password + ";"; conn = DriverManager.getConnection ( ConnURL ) ; } catch ( SQLException e ) { Log.d ( LOG, e.getMessage ( ) ) ; } catch ( ClassNotFoundException e ) { Log.d ( LOG, e.getMessage ( ) ) ; } return conn; }}

以上内容由"CocoaChina"上传发布 查看原文
相关标签 android数据库

觉得文章不错,微信扫描分享好友

扫码分享