我正在测试从 Android 直接连接到 SQL Server 的应用程序,但无法从 Android 直接连接到 SQL Server。浏览器服务正在运行,TCP 端口已启用,仍然发出奇怪的错误。还包括互联网权限
问题是什么
import java.sql.*;
import android.os.*;
import android.util.*;
import android.app.*;
import net.sourceforge.jtds.jdbc.*;
import android.widget.*;
public class MainActivity extends Activity
{
TextView txt;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txt=(TextView)findViewById(R.id.txt);
getData();
}
public void getData()
{
Log.i("Android"," MySQL Connect Example.");
Connection conn = null;
try
{
/*
String dbName = "DatabaseNew";
String driver = "net.sourceforge.jtds.jdbc.Driver";
String connString = "jdbc:jtds:sqlserver://KashifPC:1433/DatabaseNew;instance=MSSQLSERVER;user=gulzar;password=allah";
//String userName = "gulzar";
//String password = "allah";
Class.forName(driver).newInstance();
conn = DriverManager.getConnection(connString,userName,password);
*/
String connString="jdbc:sqlserver://127.0.0.1:1433;databaseName=DatabaseNew;";
Class.forName("com.microsoft.sqlserver.jdbc.DriverJDBCVersion").newInstance();
conn = DriverManager.getConnection(connString,"gulzar","allah");
Log.w("Connection","open");
Statement stmt = conn.createStatement();
ResultSet reset = stmt.executeQuery("Select * from dbo.StuAndroid");
while(reset.next())
{
Log.w("Data:",reset.getString(1));
Log.w("Data:",reset.getString(2));
Log.w("Data:",reset.getString(3));
txt.setText(reset.getString(2)+"\n");
}
stmt.close();
conn.close();
} catch (Exception e)
{
Log.w("Error connection","Error :" + e.getMessage());
}
}
}
最佳答案
127.0.0.1 是您的私有(private) IP 地址...您应该使用服务器的公共(public) IP 地址-
转到服务器主机并从here获取您的公共(public)IP
关于android - 无法从 Android 直接连接到 SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25282721/