如何修复连接字符串包含格式错误的名称或值

Ram*_*rla 1 java sql-server jdbc

代码示例:

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement;  
import org.testng.annotations.AfterTest; 
import org.testng.annotations.BeforeTest; 
import org.testng.annotations.Test;   

public class SQLserverConnection  
{   
    // Connection object
    static Connection con = null;
    // Statement object
    private static Statement stmt;
    // Constant for Database URL
    public static String DB_URL = "jdbc:sqlserver://localhost:1433";        

    // Constant for Database Username
    public static String DB_USER = "sa";      
    // Constant for Database Password
    public static String DB_PASSWORD = "VMADMIN#123";

    @BeforeTest
    public void setUp() throws Exception 
    {
        try{
            // Make the database connection
            String dbClass = "com.microsoft.sqlserver.jdbc.SQLServerDriver";                   Class.forName(dbClass).newInstance();                   

            // Get connection to DB
            Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;sa;VMADMIN#123;");                   

            // Statement object to send the SQL statement to the Database
            stmt = con.createStatement();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }

    @Test
    public void test() {
        try{
            String query = "select * from userinfo";            

            // Get the contents of userinfo table from DB
            ResultSet res = stmt.executeQuery(query);            

            // Print the result untill all the records are printed            

            // res.next() returns true if there is any next record else returns false
            while (res.next()) {
                System.out.print(res.getString(1));
                System.out.print("\t" + res.getString(2));    
                System.out.print("\t" + res.getString(3));  
                System.out.println("\t" + res.getString(4));     
            }
        } catch(Exception e) {
           e.printStackTrace();
        }
    }

    @AfterTest
    public void tearDown() throws Exception {
        // Close DB connection
        if (con != null) {
            con.close();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我收到以下错误:

com.microsoft.sqlserver.jdbc.SQLServerException: The connection string contains a badly formed name or value.
Run Code Online (Sandbox Code Playgroud)

请帮我。

Rob*_*sen 5

您的连接字符串看起来与文档中指定的内容不符。

尝试更改您的连接字符串:

"jdbc:sqlserver://localhost:1433;sa;VMADMIN#123;" 
Run Code Online (Sandbox Code Playgroud)

到:

"jdbc:sqlserver://localhost:1433;user=sa;password={VMADMIN#123};"
Run Code Online (Sandbox Code Playgroud)