我正在尝试连接到Android的SqlServer 2008r2数据库。
似乎我的连接字符串没有正确形成。
我遇到以下错误:
com.microsoft.sqlserver.jdbc.SQLServerException:与...的连接 主机10.0.2.2,命名实例14graficali \ mssqlserver20081433失败。 错误:“java.net.SocketException:Permission denied”。验证 服务器和实例名称,并检查没有防火墙阻止UDP 到端口1434的流量。对于SQL Server 2005或更高版本,请验证 SQL Server Browser Service正在主机上运行。
我的SqlInstance:
我形成的连接字符串:
String dbName = "AndroidDB";
String serverip="10.0.2.2";
String serverport="1433";
String url = "jdbc:sqlserver://"+serverip+"\\14GRAFICALI\\MSSQLSERVER2008"+serverport+";databaseName="+dbName+"";
我正在实施的整个代码:
public class MainActivity extends Activity {
String dbName = "AndroidDB";
String serverip="10.0.2.2";
String serverport="1433";
String url = "jdbc:sqlserver://"+serverip+"\\14GRAFICALI\\MSSQLSERVER2008"+serverport+";databaseName="+dbName+"";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tvData=(TextView)findViewById(R.id.tvSelectedData);
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
Connection conn =DriverManager.getConnection(url);
Statement statement=conn.createStatement();
ResultSet resultSet=statement.executeQuery("select * from UserMaster");
while(resultSet.next()){
tvData.setText(" Data1 : "+resultSet.getString(1)+" Data 2 : "+resultSet.getNString(2));
}
} catch (Exception e) {
e.printStackTrace();
tvData.setText(e.getMessage());
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
答案 0 :(得分:1)
转到Android项目下的AndroidManifest.xml文件,打开它并添加以下行:
<uses-permission android:name="android.permission.INTERNET"/>
答案 1 :(得分:1)
当我们将Android连接到SQLServer时,有一些步骤需要愚蠢。
我已经在这里提到了我的答案中的每一个详细步骤:
请按照各个阶段进行操作,我相信您将克服所有错误。