【发布时间】:2018-11-05 10:25:16
【问题描述】:
我可以使用Select * from table_name; 的简单查询打印所有记录,但是当我使用Where 子句时,它没有找到任何行,在我的表列索引是 7,请帮助我如何解决这个问题。
select * from TABLE_NAME (nolock) where CUSTOMERID=765432345;
请提供原因,为什么会发生这种情况,但我尝试使用另一个查询从客户表中获取客户 ID,然后它可以正常工作,就像下面的代码一样。
Java 代码是:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class SqlServerDB {
public static final String connectionUrl = "jdbc:sqlserver://ip:PORT;DatabaseName=<db name>";
public static final String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
static String userName = "xxxxxxxxx";
static String password = "xxxxxxxxx";
public static Connection conn;
static ResultSet query;
static String status;
static Statement statement;
public static Connection connect() {
System.out.println("Sql Server Database Connection Started");
try {
Class.forName(driver).newInstance();
conn = DriverManager.getConnection(connectionUrl, userName, password);
if (conn != null) {
System.out.println("Database Connection is established");
} else {
System.out.println("Database is not Connected");
}
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
public static void main(String args[]) throws SQLException {
conn = connect();
// Create Statement
statement = conn.createStatement();
String sqlQ = "select * from TABLE_NAME (nolock) where CUSTOMERID=765432345";
// Execute the query
query = statement.executeQuery(sqlQ);
if(query.next()) {
if(query.getString("INVOICE")!=null) {
System.out.println(status=query.getString("INVOICE"));
}
} else {
System.out.println("No rows Returned");
}
}
}
【问题讨论】:
-
表中有没有CUSTOMERID=765432345的记录?
-
是的,仅限单条记录。
-
尝试关闭连接到底
conn.close() -
表格中是否存在 INVOICE 列?
-
客户#765432345的发票列是否包含NULL?
标签: java sql-server