Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java I';我无法使用带Android studio的JDBC连接到SQL Server Express_Java_Android_Android Studio_Jdbc - Fatal编程技术网

Java I';我无法使用带Android studio的JDBC连接到SQL Server Express

Java I';我无法使用带Android studio的JDBC连接到SQL Server Express,java,android,android-studio,jdbc,Java,Android,Android Studio,Jdbc,我正在尝试连接到SQL Server(localhost),以便能够保存数据库上的信息,但是每当我出于某种原因尝试实现此目的时,当我从MainActivity.java转到Main2Activity.java时,我的应用程序停止工作约20秒,然后出现toast消息(连接被拒绝),请告诉我我做错了什么 Main2Activity.java package com.example.omar.externaldatabaseconnection; import android.app.Progres

我正在尝试连接到SQL Server(localhost),以便能够保存数据库上的信息,但是每当我出于某种原因尝试实现此目的时,当我从MainActivity.java转到Main2Activity.java时,我的应用程序停止工作约20秒,然后出现toast消息(连接被拒绝),请告诉我我做错了什么

Main2Activity.java

package com.example.omar.externaldatabaseconnection;

import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Build;
import android.os.StrictMode;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class Main2Activity extends AppCompatActivity {

EditText et_name, et_age, et_address, et_email ,et_telephone;
Button btn_save;
DatabaseConnection db;

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

if(Build.VERSION.SDK_INT > 9){
StrictMode.ThreadPolicy policy = new 
StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}

et_name = (EditText) findViewById(R.id.et_name);
et_age = (EditText) findViewById(R.id.et_age);
et_address = (EditText) findViewById(R.id.et_address);
et_email = (EditText) findViewById(R.id.et_email);
et_telephone = (EditText) findViewById(R.id.et_telephone);
btn_save = (Button) findViewById(R.id.btn_save);
db = (DatabaseConnection) getApplication();
db.open();

btn_save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
db.save("insert into Employees values 
('"+et_name.getText().toString().trim()+"', 
'"+et_age.getText().toString().trim()+"', 
'"+et_address.getText().toString().trim()+"', 
'"+et_email.getText().toString().trim()+"', 
'"+et_telephone.getText().toString().trim()+"')");
finish();
}
});
}

}
DatabaseConnection.java

package com.example.omar.externaldatabaseconnection;

import android.app.Application;
import android.widget.Toast;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.Connection;


public class DatabaseConnection extends Application {

Connection connection;
String url = "";
String DBName = "EmployeesDB";
String DBUserName = "PC NAME";
String DBPassword = "MSSQL Password";
String HostName = "10.0.2.2";
String Port = "MY PORT NUMBER";
Statement statement;

public void open(){
try {
Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
url = "jdbc:jtds:sqlserver://" + HostName +":"+Port+";"+ "databaseName=" + 
DBName + ";user=" + DBUserName + ";password="+ DBPassword + " 
instance=SQLEXPRESS;";
connection = DriverManager.getConnection(url, DBUserName, DBPassword);
}
catch (Exception e){
Toast.makeText(this, e.getCause().getMessage(), Toast.LENGTH_LONG).show();

}
}

public void save (String sql){
try {
statement = connection.createStatement();
statement.executeQuery(sql);
}
catch (Exception ex){
Toast.makeText(this, ex.getMessage(), Toast.LENGTH_LONG).show();
}
}
}

Sir android是一个移动平台,您无法将android应用程序直接连接到任何数据库服务器,如Sql server、mysql或oracle,您必须创建一个本地SQLITE数据库,并通过WEB服务从上述任何数据库服务器获取数据来填充它。如果您选择php,则完全取决于您,asp、java等用于制作WEB服务。填充SQLITE数据库后,您将能够在本地SQLITE数据库上执行查询


简单地说,WEB服务是android应用程序和数据库服务器之间的桥梁,您必须使用它。

非常感谢您提供了有用的信息。然而,我尝试这种方法的主要原因是,youtube上的许多视频都说,使用JDBC可以像我那样访问数据库。