新手 android 开发人员试图连接到 SQL Server 2008
Posted
技术标签:
【中文标题】新手 android 开发人员试图连接到 SQL Server 2008【英文标题】:Newbie android developer trying to connect to SQL Server 2008 【发布时间】:2013-08-18 11:56:21 【问题描述】:我对 android 开发相当陌生,我正在尝试将我的应用程序连接到 SQL Server 2008 数据库。尝试连接时,我收到一条错误消息“找不到数据库驱动程序 net.sourceforge.jtds.jdbc.Driver”。这是我的代码:
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_create_course);
// Show the Up button in the action bar.
setupActionBar();
setCurrentDateOnView();
addListenerOnButton();
TextView textview7 = (TextView) findViewById(R.id.textView7);
String connectionurl = "jdbc:jtds:sqlserver:winsqls01.cpt.wa.co.za;databaseName=Courses; user=*;Password=*;";
try
Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
textview7.setText("Successful");
Connection con = DriverManager.getConnection(connectionurl);
// Create and execute an SQL statement that returns some data.
String SQL = "SELECT * FROM Courses";
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(SQL);
while(rs.next())
textview7.setText(rs.getString(0));
catch (ClassNotFoundException e)
textview7.setText("Could not find the database driver " + e.getMessage());
catch (SQLException e)
textview7.setText("Could not connect to the database " + e.getMessage());
catch (Exception e)
e.printStackTrace();
dpResult1 = (DatePicker) findViewById(R.id.dpResult1);
dpResult1.setVisibility(View.GONE);
dpResult2 = (DatePicker) findViewById(R.id.dpResult2);
dpResult2.setVisibility(View.GONE);
/**
* Set up the @link android.app.ActionBar, if the API is available.
*/
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private void setupActionBar()
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
getActionBar().setDisplayHomeAsUpEnabled(true);
我的驱动程序导入是import net.sourceforge.jtds.jdbc.*;
,但它说我实际上并没有使用这个导入。有人可以帮忙吗?
【问题讨论】:
【参考方案1】:你看过这个solution 吗?
您使用的是哪个版本的 jdbc 驱动程序和哪个版本的 Java?用户 aiolos 建议回到旧版本 1.2.6 以使其正常工作。 如果您使用的是 1.3.0,那么您也必须使用 Java 7。 Java 6 及以下版本无法加载驱动程序。
更新
连接字符串应该是那种格式
jdbc:jtds:<server_type>://<server>[:<port>][/<database>][;<property>=<value>[;...]]
所以试试你的:
jdbc:jtds:sqlserver://winsqls01.cpt.wa.co.za:__PORT__;databaseName=Courses;user=*;password=*;
更新 2
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_create_course);
// Show the Up button in the action bar.
setupActionBar();
setCurrentDateOnView();
addListenerOnButton();
TextView textview7 = (TextView) findViewById(R.id.textView7);
try
Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
textview7.setText("Successful");
Connection con = DriverManager.getConnection("jdbc:jtds:sqlserver://winsqls01.cpt.wa.co.za:__PORT__;databaseName=Courses", "__USERNAME__", "__PASSWORD__");
// Create and execute an SQL statement that returns some data.
String SQL = "SELECT * FROM Courses";
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(SQL);
while(rs.next())
textview7.setText(rs.getString(0));
catch (ClassNotFoundException e)
textview7.setText("Could not find the database driver " + e.getMessage());
catch (SQLException e)
textview7.setText("Could not connect to the database " + e.getMessage());
catch (Exception e)
textview7.setText("Some other error occured: " + e.getMessage());
e.printStackTrace();
试试我上面的代码,它对你的代码进行了重组,并根据你的需要更改所有标有下划线的变量。另一个说明,你确定数据库名和表名都等于“课程”吗?
【讨论】:
我刚试过,同样的错误。也许我错误地引用了 jar 文件?我正在使用eclipse,也许我以错误的方式将其导入应用程序? 好的,你要导入什么jar? jtds-1.2.6.jar ? 等一下,我设法修复了这个错误,但现在它说我的连接字符串的语法无效 我为连接字符串添加了一个示例,您在服务器之后错过了'//'并且端口丢失并且您使用了大写的密码。 NEW 错误,它根本不告诉我它是否连接到数据库。我什至无法捕捉到异常。在“DriverManager.getConnection”语句之后似乎停止执行代码。以上是关于新手 android 开发人员试图连接到 SQL Server 2008的主要内容,如果未能解决你的问题,请参考以下文章
如何将 SQL 开发人员/Toad 连接到 Oracle 8i
无法将 Nexus One 手机连接到 Android adb
IIS无法使用SQL Server身份验证连接到SQL Server
通过 ms jdbc 连接到 Azure SQL DB 的 Android 应用程序错误