簡體   English   中英

無法通過我的選擇查詢從SQL Server獲取數據(使用jdbc驅動程序)

[英]Can't get data from a SQL Server with my select query (using jdbc driver)

我正在嘗試連接到使用sql身份驗證的SQL Server 2008 R2實例。 沒有引發異常(我正在捕獲SqlException),我的代碼如下:

                    SQLServerDataSource ds = new SQLServerDataSource();
        ds.setUser(dbUserID);
        ds.setPassword(Password);
        ds.setServerName(DBServer);
        ds.setPortNumber(1433);

        ds.setDatabaseName(dbName);

        con = (SQLServerConnection) ds.getConnection();


        Statement statement = con.createStatement();
                     resultSet = statement.executeQuery(SQL);

所有參數(用戶名,密碼等)均為100%正確。 數據庫正在運行等。查詢是從存在的表中簡單選擇*。 使用完后沒有空對象,沒有設置連接對象,但是結果集有0行。

有什么想法我做錯了嗎? 我正在使用Microsoft SQL Server JDBC Driver 3.0

謝謝

在這里做一些假設:

  1. 您正在使用SQL Auth,並且可以從命令行甚至是SQL Management Studio使用dbuserid和password參數進行連接。

  2. 您可以在1433上telnet到服務器,即確保沒有防火牆或端口轉發問題。 使用telnet 123.123.123.1231433。您應該立即建立連接。 如果不是,則需要修復該問題。

我拿了您的代碼,然后使用JDBC 3在我的SQL 2008數據庫之一中運行了該代碼(請使用快速而骯臟的代碼)。

import com.microsoft.sqlserver.jdbc.SQLServerConnection;
import com.microsoft.sqlserver.jdbc.SQLServerDataSource;

import java.sql.ResultSet;
import java.sql.Statement;

public class testdelete
{
   private static void displayRow(String title, ResultSet rs) {
      try {
         System.out.println(title);
         System.out.println("Sales ID - Pkts Sold");
         while (rs.next()) {
            System.out.println(rs.getString("SALES_ID") + " : " + rs.getString("Pkts"));
         }
      } catch (Exception e) {
         e.printStackTrace();
      }
   }

    public static void main(String[] args)
    {
        System.out.println("testing...");

        String dbUserID = "sa";
        String Password = "MYPWD";
        String DBServer = "123.123.123.123";
        String dbName = "MYDB";

        SQLServerConnection con;
        ResultSet rs;

        String SQL = "select top 10 * from Sales";

        SQLServerDataSource ds = new SQLServerDataSource();
        ds.setUser(dbUserID);
        ds.setPassword(Password);
        ds.setServerName(DBServer);
        ds.setPortNumber(1433);

        ds.setDatabaseName(dbName);

        try
        {
            con = (SQLServerConnection) ds.getConnection();
            Statement statement = con.createStatement();
            rs = statement.executeQuery(SQL);
            displayRow("SALES", rs);
        } catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM