I can't connect my virtual machine Android with the sql server 2000 that is running in the localhost. please help me I will be very grateful..................................................................................................................................
This is my log:
04-10 22:51:14.162: W/System.err(1121): android.os.NetworkOnMainThreadException
04-10 22:51:14.162: W/System.err(1121): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
04-10 22:51:14.170: W/System.err(1121): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
04-10 22:51:14.170: W/System.err(1121): at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
04-10 22:51:14.170: W/System.err(1121): at libcore.io.IoBridge.connect(IoBridge.java:112)
04-10 22:51:14.174: W/System.err(1121): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
04-10 22:51:14.174: W/System.err(1121): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
04-10 22:51:14.174: W/System.err(1121): at java.net.Socket.startupSocket(Socket.java:566)
04-10 22:51:14.174: W/System.err(1121): at java.net.Socket.tryAllAddresses(Socket.java:127)
04-10 22:51:14.174: W/System.err(1121): at java.net.Socket.<init>(Socket.java:177)
04-10 22:51:14.174: W/System.err(1121): at java.net.Socket.<init>(Socket.java:149)
04-10 22:51:14.178: W/System.err(1121): at net.sourceforge.jtds.jdbc.SharedSocket.<init>(SharedSocket.java:249)
04-10 22:51:14.190: W/System.err(1121): at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:322)
04-10 22:51:14.190: W/System.err(1121): at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:188)
04-10 22:51:14.194: W/System.err(1121): at java.sql.DriverManager.getConnection(DriverManager.java:175)
04-10 22:51:14.198: W/System.err(1121): at java.sql.DriverManager.getConnection(DriverManager.java:209)
04-10 22:51:14.198: W/System.err(1121): at com.example.appentrenamientonatacion.ConectorBD.conectar(ConectorBD.java:40)
04-10 22:51:14.202: W/System.err(1121): at com.example.appentrenamientonatacion.ClienteBD.buscarClientePorId(ClienteBD.java:125)
04-10 22:51:14.202: W/System.err(1121): at com.example.appentrenamientonatacion.MainActivity.mostrarClientes(MainActivity.java:57)
04-10 22:51:14.202: W/System.err(1121): at java.lang.reflect.Method.invokeNative(Native Method)
04-10 22:51:14.202: W/System.err(1121): at java.lang.reflect.Method.invoke(Method.java:511)
04-10 22:51:14.202: W/System.err(1121): at android.view.View$1.onClick(View.java:3586)
04-10 22:51:14.206: W/System.err(1121): at android.view.View.performClick(View.java:4084)
04-10 22:51:14.206: W/System.err(1121): at android.view.View$PerformClick.run(View.java:16966)
04-10 22:51:14.206: W/System.err(1121): at android.os.Handler.handleCallback(Handler.java:615)
04-10 22:51:14.206: W/System.err(1121): at android.os.Handler.dispatchMessage(Handler.java:92)
04-10 22:51:14.206: W/System.err(1121): at android.os.Looper.loop(Looper.java:137)
04-10 22:51:14.210: W/System.err(1121): at android.app.ActivityThread.main(ActivityThread.java:4745)
04-10 22:51:14.210: W/System.err(1121): at java.lang.reflect.Method.invokeNative(Native Method)
04-10 22:51:14.210: W/System.err(1121): at java.lang.reflect.Method.invoke(Method.java:511)
04-10 22:51:14.210: W/System.err(1121): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
This is my code:
public class ConectorBD {
private String url = "jdbc:jtds:sqlserver://10.0.2.2:1433;DatabaseName=stadiums";
private String driver = "net.sourceforge.jtds.jdbc.Driver";
private String userName = "sa";
private String password = "";
private Connection conn = null;
private ResultSet rs = null;
Context context;
public ConectorBD(String databaseName,String username,String password,Context context){
this.context=context;
//url+=databaseName;
//this.userName=username;
//this.password=password;
}
public void conectar(){
try {
Class.forName(driver);
setConn(DriverManager.getConnection(url, userName, password));
System.out.println("Connected to the database!!! Getting table list...");
//DatabaseMetaData dbm = conn.getMetaData();
Toast.makeText(context, "conectado", Toast.LENGTH_SHORT).show();
}catch(Exception e) {
String a="";
/*for (StackTraceElement st :e.getStackTrace()){
a+=st+"\n";
}*/
//System.out.println(a);
//Log.e("error", a);
Toast.makeText(context,a, Toast.LENGTH_SHORT).show();
e.printStackTrace();
//System.out.println();
}
}
public ArrayList select(String queries,ArrayList<String> lstCamposATraer){
ArrayList lst = new ArrayList();
try{
Statement sta = getConn().createStatement();
String Sql = queries;
setRs(sta.executeQuery(Sql));
int cont=0;
while(getRs().next()){
lst.add(getRs().getString(lstCamposATraer.get(cont)));
cont++;
if (cont==lstCamposATraer.size()){
cont=0;
}
}
//esto esta todo mal, no pense en separa los campos ni en nada :p
/*while (rs.next()) {
System.out.println(rs.getString("iDPileta"));
}*/
}catch(Exception e){
e.printStackTrace();
}finally{
cerrar();
}
return lst;
}
public void cerrar(){
try {
if(conn!=null){
getConn().close();
}
if (rs!=null){
getRs().close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public Connection getConn() {
return conn;
}
public void setConn(Connection conn) {
this.conn = conn;
}
public ResultSet getRs() {
return rs;
}
public void setRs(ResultSet rs) {
this.rs = rs;
}
}