android应用程序没有连接到mssql server 2008

时间:2014-08-23 10:51:24

标签: java android sql-server

这是我的layout.xml

<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/t1" />

   <TextView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/t2"
    />

    <TextView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/t3"
    />

    <TextView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/t4"
    />

    <TextView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/t5"
    />

    <Button 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/btn2"
    />

  </LinearLayout>

这是我的activitymain.java

package com.example.mssqlconnect;

import android.os.Bundle;   
import java.sql.*;
import net.sourceforge.jtds.jdbc.*;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import java.sql.*;
import net.sourceforge.jtds.jdbc.*;
public class MainActivity extends Activity {

public class A implements OnClickListener {

    @Override
    public void onClick(View arg0) {
        TextView tv2=(TextView)findViewById(R.id.t2);
        TextView tv3=(TextView)findViewById(R.id.t3);
        TextView tv4=(TextView)findViewById(R.id.t4);
        TextView tv5=(TextView)findViewById(R.id.t5);

        tv2.setText("Connected");
        Log.i("Android"," MySQL Connect Example.");
        Connection conn = null;
        try {
        String driver = "net.sourceforge.jtds.jdbc.Driver";
        Class.forName(driver).newInstance();
        tv4.setText("2111");
        //test = com.microsoft.sqlserver.jdbc.SQLServerDriver.class;
        String connString = "jdbc:jtds:sqlserver://sony-VAIO/sony :1433/androiddata;encrypt=false;user=0cool;password=chevron;instance=SQLEXPRESS;";
        //String connString ="jdbc:jtds:sqlserver://(local);instance=MSSQLSERVER";
        String username = "0cool";
        String password = "chevron";
        tv4.setText("222222222");
        try{
        conn = DriverManager.getConnection(connString,username,password);
        //tv5.setText("2423424");



        Log.w("Connection","open");
        Statement stmt = conn.createStatement();
        ResultSet reset = stmt.executeQuery("select * from android_data");

           //Print the data to the console
           while(reset.next()){
            Log.w("Data:",reset.getString(1));
//                        Log.w("Data",reset.getString(2));
            //tv.setText(reset.getString(2));
            }
            conn.close();
            }
            catch(SQLException e)
             {
                tv5.setText(e.getMessage());
             }

        } catch (Exception e)
        {
                    //Log.w("Error connection","" + e.getMessage());
                    TextView tv1=(TextView)findViewById(R.id.t1);
                    tv1.setText(e.getMessage());
        }
        }


}

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

    Button btn=(Button)findViewById(R.id.btn2);
    btn.setOnClickListener(new A());
}

@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;
}

}

我在模拟器中运行此代码时没有收到任何异常或任何错误,请帮助我按计划进行操作。如果有一个替代方法来操纵数据库表中的数据,那么请指导我,我也尝试通过json访问,但后来又没有得到任何数据。

2 个答案:

答案 0 :(得分:1)

不要直接从您的应用程序连接到数据库(就像为黑客手持欢迎板一样)。使用网络服务。

答案 1 :(得分:0)

尝试在android之外运行一些webservice调用来验证服务是否正常运行。此外,如果Web服务位于本地计算机上,我将验证是否有任何防火墙/端口问题无法解决。