【发布时间】:2017-02-15 11:00:12
【问题描述】:
我们目前遇到了与这里相同的问题:How to connect Android Studio with SQL Server database,但尚未得到答复。
我们也在 Eclipse 上成功连接,使用 sqljdb4.jar 文件,我们在 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.net\\MSSQLSERVER;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 driver
02-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)
【问题讨论】:
-
您尝试过的所有方法究竟是如何不起作用的?它崩溃了吗?给出例外?如果是,异常堆栈跟踪在哪里?
-
您的网址格式错误。正确的应该是
String url = "jdbc:jtds:sqlserver://[SERVER_ADDRESS]/[DB_NAME]"; -
感谢您的帮助! @Prerak Sola:这种语法不会改变我们的想法,但我们有以下错误开始(@Vlad Matvienko):W/System.err:java.sql.SQLException:没有合适的驱动程序 02-15 14:34: 01.896 4180-4180/com.example.gaetan.fluxsequence W/System.err:在 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 你有什么建议吗?跨度>
-
@mhyeah 您缺少指定驱动程序的 URL 中的
jtds部分。没有它就行不通。此外,我在代码中没有看到任何有关驱动程序注册的信息,例如Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();。 -
我们只是在帖子中添加返回的错误。如果你看到其他问题。当我们在“try”循环中添加您的行时,它会返回一个未经处理的异常: java.lang.ClassNotFoundException 您怎么看?比你,真的
标签: java android sql-server database connection