[英]Can`t connect to SQL server from Android
我想从Android连接到SQL Server。 我想从SQL Server访问数据。 但这并没有建立联系。 请帮我解决这个问题。
我包括了jtds-1.2.7.jar
这是我的MainActivity
(我提到程序中出现错误的地方):
try{
String driver = "net.sourceforge.jtds.jdbc.Driver";
Class.forName(driver).newInstance();
conUrl = "jdbc:jtds:sqlserver://192.168.1.15 :1433/Retail_MB;encrypt=fasle;user=sa;password=123;instance=SQLEXPRESS;";
uname = "sa";
pass = "123";
/////// On this statement it gives error...
connect = DriverManager.getConnection(conUrl,uname,pass);
Statement statement=connect.createStatement();
rs=statement.executeQuery(str);
while(rs.next()){
Log.w("Data:",rs.getString(0));
}
connect.close();
} catch (Exception e){
Log.w("Error connection","" + e.getMessage());
}
它在DriverManager.getConnection(conUrl,uname,pass);上给出错误
错误是IOExeption:
socket failed: EACCES (Permission denied)
这是我的清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.alphahms"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.alphahms.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
问题是什么? Android和SQL Server专家请帮助我。
尝试添加
<uses-permission android:name="android.permission.INTERNET" />
在您的Android清单中。
它允许应用程序打开网络套接字。
第一个EACCES (Permission denied)
是因为清单中没有Internet权限:
<uses-permission android:name="android.permission.INTERNET" />
添加后,您得到的ANR应用程序没有响应。 这是因为您将UI线程阻塞了5秒钟或更长时间。 您不应该在UI线程上执行网络请求,而应为它们使用后台线程。 AsyncTask
可能是将操作卸载到Backgrond线程的最简单方法。 (由于targetSdkVersion
为18且高于11,因此您还应该获得NetworkOnMainThreadException
以便在UI线程上执行网络操作-我想您已在未显示的代码中取消了该异常。)
通常,从移动客户端进行JDBC数据库连接是一个坏主意。 JDBC协议专为例如数据中心中的高吞吐量低延迟网络而设计。 移动数据网络运行缓慢且无法有效地使用JDBC。 而是,为您的远程数据库操作创建Web服务,然后将移动应用程序连接到Web服务。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.