1

こんにちは、私はあなたが私を助けることができるかどうか疑問に思っていました. アプリケーションにログインフォームまたはフレームがあります。ユーザー名とパスワードのテキストフィールドがあり、アプリケーションはデータベースにアクセスするために接続されています。アプリケーションで他のことを実行する前に、ユーザーにログインしてもらいたいです。Visual Basic では簡単ですが、Java ではロックの一部です。これは私が持っているコードです。

import java.sql.*;

public class Login1 extends  JavaApplication1
{

    private static Connection conn;
    static Statement state;
    public static void login()
    {
        String url = "jdbc:odbc:Java_Testing";            
        try
        {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            conn = DriverManager.getConnection(url);
            System.out.println("The driver was loaded successfully");
        }
        catch(ClassNotFoundException error)
        {
            System.out.println("Unable to load the driver" + error);
        }
        catch(SQLException error)
        {
            System.out.println("Could not connect to the database" + error);
        } 

        try
        {
            String query1 = "SELECT Username , User_Password From Users Where Username = ('"+ JavaApplication1.txtUsername.getText() + "' AND User_Password ='" + JavaApplication1.txtPassword.getText() + "')";
            state = conn.createStatement();

            ResultSet results = state.executeQuery(query1);
            System.out.println("Congradulations you have succefully loged in");                     
        }   
        catch(Exception error)
        {
            System.out.print("Enable to login the user: " + error);
        }            
    }
}

JavaApplication1awt は、すべてのイベント処理を行い、awt コントロールを持つ別のクラスです。

このコードを実行すると、これがエラーになります

Unenable to to login the user: java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

回答がある場合は、共有して 2 番目の試行ブロックをもう一度見てください。問題がどこにあるかはわかっています。

前もって感謝します。

4

3 に答える 3

1

URl でデータベースのログイン資格情報を提供するのを忘れた

  String url = "jdbc:odbc:Java_Testing;user=dbusername;password=passwordfordb";
于 2012-09-25T11:17:00.293 に答える
1

SQL が正しくありません。あなたのブラケットは間違った場所にあります。

SELECT Username , User_Password From Users 
Where Username = ('txtUsername' AND User_Password ='txtPassword')

それらを必要としないように思われるので、SQL からブラケットを削除します。

于 2012-09-25T11:17:18.017 に答える
0

エラーを見ると、渡す値のデータ型がデータベースで宣言したデータ型と一致しないことを意味するデータ型の不一致があると言えます。そのため、データベースでデータ型を確認してください。

于 2012-09-25T11:21:12.893 に答える