Trang 2 / 3 FirstFirst 123 LastLast
Hiển thị kết quả từ 11 đến 20 / 22
  1. #11
    Tham gia
    08-04-2009
    Bài viết
    48
    Like
    0
    Thanked 0 Times in 0 Posts
    Đầu tiên bạn phải Build cái Project ra đã.. rùi mới chạy xem được...
    Bạn nhấn F11 để Build cái Project đã Rồi nhấn F6 để chạy hen...

  2. #12
    Tham gia
    21-04-2008
    Location
    Hà Nội
    Bài viết
    54
    Like
    0
    Thanked 0 Times in 0 Posts
    Ồ vậy ah, thank bạn nha, để mình thử.
    Ah bạn ơi mình làm thế nào để chọn cho form này chạy trước tiên, khi kick nút thì mới mở sang form kia.
    Ví dụ chạy form đăng nhập đầu tiên, login vào thì mở form khác lên và hide form đăng nhập đi?

  3. #13
    Tham gia
    08-04-2009
    Bài viết
    48
    Like
    0
    Thanked 0 Times in 0 Posts
    Bạn làm một cái Form chính. Tạo một cái CPanel trong đó..
    Khi nào cần form nào thì add vô cái CPanel trong cái form chính đó hen...
    Đoạn Code add như sau:

    NewForm j = new NewForm();
    _JPanel.removeAll();
    _JPanel.add(j);
    j.setBounds(0,0,800,600);
    this.repaint(0,0,800,600);


    Thân...

  4. #14
    Tham gia
    21-04-2008
    Location
    Hà Nội
    Bài viết
    54
    Like
    0
    Thanked 0 Times in 0 Posts
    Mình đã tạo xong giao diện, tham khảo sách và viết xong code kết nối csdl access.
    Các bạn cho mình hỏi cách tạo một form đăng nhập sử dụng csdl với, phải viết lệnh cho nút Login như thế nào ?

  5. #15
    Tham gia
    08-04-2009
    Bài viết
    48
    Like
    0
    Thanked 0 Times in 0 Posts
    Bạn tạo giao diện khi chạy thì nó add form login vào...
    Tạo một cái biến toàn cục, boolean để biết là login hay chưa
    Sau dó làm cái form login, Button Login click thì check trong csdl xem nó có đúng với user và pass k?
    Nếu đún thì vào form nào tùy bạn.. Không thì vào form báo lỗi...

    Có 2 cách để chặn truy cập vào thanh menu của chương trình hay các form khác khi chưa login:
    Một là disable, hai là khi add form thì check cái biến bool nếu chưa login thì add form báo lỗi đè lên.

    Thân...

  6. #16
    Tham gia
    21-04-2008
    Location
    Hà Nội
    Bài viết
    54
    Like
    0
    Thanked 0 Times in 0 Posts
    Nguyên lý thì mình hiểu cả, mình từng làm trên VB.NET rồi mà.
    Chỉ là chuyển qua java thì... mình bó tay, đọc bao nhiêu tài liệu, nhưng chưa có cái mình cần. Mò mẫm kiểu này khó wa ta.
    Bạn có demo mẫu ko cho mình tham khảo, học vẹt nhanh hơn, mình tự hiểu đc.

  7. #17
    Tham gia
    08-04-2009
    Bài viết
    48
    Like
    0
    Thanked 0 Times in 0 Posts
    Đây là hàm mình viết cho button Login:

    private void btnLoginActionPerformed(java.awt.event.ActionEvent evt)
    String msg, title;
    String full_password = "";
    char [] password_char = pwdPass.getPassword();
    full_password = String.valueOf(password_char);

    //Kiểm tra Username
    if (txtUser.getText().isEmpty()){
    msg = "User Name can not left blank!";
    title = "Error";
    JOptionPane.showMessageDialog(this, msg, title, JOptionPane.ERROR_MESSAGE);
    txtUser.requestFocus();
    return;
    }

    //Kiểm tra pass
    if (String.valueOf(pwdPass.getPassword()).isEmpty()){
    msg = "Password can not left blank!";
    title = "Error";
    JOptionPane.showMessageDialog(this, msg, title, JOptionPane.ERROR_MESSAGE);
    pwdPass.requestFocus();
    return;
    }

    try {
    rsLogin.beforeFirst(); //rsLogin là ResultSet
    /*
    Giả sử có bảng LoginInfo chứa User và Pass thì cái Resultset lấy như sau:
    Statement stmt = school.firstForm.cnDetails.createStatement(ResultS et.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
    rsLogin = stmt.executeQuery("SELECT * FROM LoginInfo");
    */

    while(rsLogin.next()){
    if (txtUser.getText().toString().compareTo(rsLogin.ge tString(1)) == 0 && full_password.compareTo(rsLogin.getString(2)) == 0){
    school.firstForm.isLogin = true; //Đăng nhập thành công
    school.firstForm.user = rsLogin.getString(1);
    break;
    }
    }

    //Add form cần thiết khi đã đăng nhập thành công
    if (school.firstForm.isLogin){
    firstjpanel j = new school.firstjpanel();
    this.removeAll();
    this.add(j);
    j.setBounds(0,0,800,600);
    this.repaint(0,0,800,600);
    }else{
    msg = "Wrong User or Password!";
    title = "Error";
    JOptionPane.showMessageDialog(this, msg, title, JOptionPane.ERROR_MESSAGE);
    txtUser.selectAll();
    txtUser.requestFocus();
    return;
    }
    } catch (SQLException ex) {
    ex.printStackTrace();
    }
    }

  8. #18
    Tham gia
    21-04-2008
    Location
    Hà Nội
    Bài viết
    54
    Like
    0
    Thanked 0 Times in 0 Posts
    Thank bạn thật nhiều nhé
    Tối đi học về mình sẽ thử, mình hỏi luôn là mình chép trong SGK code kết nối csdl thế này, mình viết vào voin main có sẵn. KO biết đúng và kết nối đc ko bạn?

    Code:
    public static void main(String args[]) {
            Connection connection = null;
            if(args.length !=1) {
                System.out.println("Syntax: Java Test Connection " + "DSN");
                return;
            }
            try { //load driver
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                System.out.println("Loading the driver...");
            }
            catch(Exception e) { //problem load driver, class not exist
                e.printStackTrace();
                return;
            }
            try {
                String dbURL = "jdbc:odbc:" + args[0];
                System.out.println("Establishing connection...");
                connection = DriverManager.getConnection(dbURL,"","");
                System.out.println("Connect to " +connection.getCatalog()+ " successfully!");
                //Do whatever queries or update you want here!!!
            }
            catch(SQLException e) {
                e.printStackTrace();
            }
            finally {
                if(connection != null) {
                    try {
                        connection.close();
                    }
                    catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
            }
    
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new DangNhap().setVisible(true);
                }
            });
        }
    Thank bạn

    [=========> Bổ sung bài viết <=========]

    Bạn ơi mình vừa ghép code bạn cho vào bài rồi.
    Có mấy cái lỗi này, chắc cách đặt tên và kết nối csdl của bạn khác thì phải, lỗi mấy chỗ này bạn ạ.
    Mình kết nối như thế này (chép sách giáo khoa ra). Chỉ mình với nha, thanks bạn.
    Code:
    Connection connection = null;
            if(args.length !=1) {
                System.out.println("Syntax: Java Test Connection " + "DSN");
                return;
            }
            try { //load driver
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                System.out.println("Loading the driver...");
            }
            catch(Exception e) { //problem load driver, class not exist
                e.printStackTrace();
                return;
            }
            try {
                String dbURL = "jdbc:odbc:" + args[0];
                System.out.println("Establishing connection...");
                connection = DriverManager.getConnection(dbURL,"","");
                System.out.println("Connect to " +connection.getCatalog()+ " successfully!");
                //Do whatever queries or update you want here!!!
            }
            catch(SQLException e) {
                e.printStackTrace();
            }
            finally {
                if(connection != null) {
                    try {
                        connection.close();
                    }
                    catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
            }


    Đây là đoạn lỗi:
    Lỗi mấy chữ rsLogin, shool, firstJpanel, user...
    Code:
    try {
                rsLogin.beforeFirst(); //rsLogin là ResultSet
                /*
                Có bảng login chứa Name và Pass thì cái Resultset lấy như sau:
                Statement stmt = school.firstForm.cnDetails.createStatement(ResultS et.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
                rsLogin = stmt.executeQuery("SELECT * FROM login");
                */
                while(rsLogin.next()){
                    if (((txtname.getText().toString().compareTo(rsLogin.getString(1))) == 0) && ((full_password.compareTo(rsLogin.getString(2))) == 0)){
                         school.firstForm.isLogin = true; //Đăng nhập thành công
                         school.firstForm.user = rsLogin.getString(1);
                         break;
                    }
                }
    
                //Add form cần thiết khi đã đăng nhập thành công
                if (school.firstForm.isLogin){
                    firstJpanel j = new school.firstJpanel();
                    this.removeAll();
                    this.add(j);
                    j.setBounds(0,0,800,600);
                    this.repaint(0,0,800,600);
                }

    [=========> Bổ sung bài viết <=========]

    Mình khó hiểu nhất là cái school, nó là cái ji và đc khai báo ở đâu vậy?
    Được sửa bởi tiger86love102 lúc 23:39 ngày 14-04-2009 Reason: Bổ sung bài viết

  9. #19
    Tham gia
    08-04-2009
    Bài viết
    48
    Like
    0
    Thanked 0 Times in 0 Posts
    Cái school bạn xóa đi hen.. do mình viết nguyên một cái Project cho trường học nên lấy vậy thôi... xóa đi k thành vấn đề.

    Còn khi kết nối thì nhiêu đây là đủ rồi nè bạn:
    PHP Code:
        private Connection cnDetails null;
        private final 
    String url "jdbc:sqlserver://";
        private final 
    String serverName "127.0.0.1";
        private final 
    String instanceName "SQLExpress";
        private final 
    String databaseName "dbName";

    private 
    String getConnectionUrl() {
            return 
    url serverName ";instanceName=" instanceName ";databaseName=" databaseName ";integratedSecurity=true;";
        }

     try{
                Class.
    forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
                
    cnDetails DriverManager.getConnection(getConnectionUrl());
                if (
    cnDetails != nullSystem.out.println("Connection Successful!");
            }catch (
    ClassNotFoundException ex){
                
    ex.printStackTrace();
            }catch (
    SQLException ex){
                
    ex.printStackTrace();
            } 

    thân...

  10. #20
    Tham gia
    21-04-2008
    Location
    Hà Nội
    Bài viết
    54
    Like
    0
    Thanked 0 Times in 0 Posts
    Đây là toàn bộ code của form Bàn có khách: hiển thị các bàn đang có khách, cái này có trong csdl access, chỉ việc kết nối csdl và hiển thị lên table.
    Mình ko thấy lỗi, chạy nhưng ko thấy hiển thị nội dung lên table.
    Các bạn xem dùm nhé.

    Code:
    package qlnhahang;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import java.sql.SQLException;
    import javax.swing.*;
    import javax.swing.table.*;
    
    public class BanCoKhach extends javax.swing.JFrame {
        Connection conn = null;
        Statement s = null;
        ResultSet rs = null;
        DefaultTableModel model;
        String data[][]= {};
        String columnNames[] = {"Ma_ban", "Ten_ban", "So_khach"};
        
        public BanCoKhach() {
            initComponents();
        }
    
        @SuppressWarnings("unchecked")
        // <editor-fold defaultstate="collapsed" desc="Generated Code">
        private void initComponents() {
    
            cmdthoat = new javax.swing.JButton();
            jScrollPane1 = new javax.swing.JScrollPane();
            tablebancokhach = new javax.swing.JTable();
    
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
            setTitle("Ban Co Khach");
            setName("frmbancokhach"); // NOI18N
    
            cmdthoat.setFont(new java.awt.Font("Arial", 1, 14));
            cmdthoat.setText("Thoát");
            cmdthoat.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(255, 51, 0), 3));
    
            tablebancokhach.setModel(new javax.swing.table.DefaultTableModel(
                new Object [][] {
                    {null, null, null},
                    {null, null, null},
                    {null, null, null},
                    {null, null, null}
                },
                new String [] {
                    "Ma_ban", "Ten_ban", "So_khach"
                }
            ));
            jScrollPane1.setViewportView(tablebancokhach);
    
            javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
            getContentPane().setLayout(layout);
            layout.setHorizontalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                        .addGroup(layout.createSequentialGroup()
                            .addContainerGap()
                            .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 507, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                            .addGap(408, 408, 408)
                            .addComponent(cmdthoat, javax.swing.GroupLayout.PREFERRED_SIZE, 127, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addContainerGap(29, Short.MAX_VALUE))
            );
            layout.setVerticalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addContainerGap()
                    .addComponent(cmdthoat, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 401, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addContainerGap(43, Short.MAX_VALUE))
            );
    
            pack();
        }// </editor-fold>
    
        public void databaseConnect() {
            model = new DefaultTableModel(data,columnNames);
            tablebancokhach = new JTable(model);
            try{
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            }
            catch(ClassNotFoundException ce){
                ce.printStackTrace();
            }
    
            try{
                String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=csdlqlnhahang.mdb";
                conn = DriverManager.getConnection(url,"lab","");
                s = (Statement) conn.createStatement();
                rs = s.executeQuery("SELECT * FROM bancokhach");
                while(rs.next()) {
                    String chuoi[] = new String[5];
                   	chuoi[0] = rs.getString(1);
                   	chuoi[1] = rs.getString(2);
                   	chuoi[2] = rs.getString(3);
                   	chuoi[3] = rs.getString(4);
                   	chuoi[4] = rs.getString(5);
                   	model.addRow(chuoi);
               }
               conn.close();
           }
           catch (SQLException se) {
               System.out.println("SQL Error: " + se.toString() + " "+ se.getErrorCode() + " " + se.getSQLState());
           }
           catch (Exception e) {
               System.out.println("Error: " + e.toString()+ e.getMessage());
           }
    	}
    
        public static void main(String args[]) {
            BanCoKhach ban = new BanCoKhach();
            ban.databaseConnect();
            ban.show();
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new BanCoKhach().setVisible(true);
                }
            });
        }
    
        // Variables declaration - do not modify
        private javax.swing.JButton cmdthoat;
        private javax.swing.JScrollPane jScrollPane1;
        private javax.swing.JTable tablebancokhach;
        // End of variables declaration
    
    }

Trang 2 / 3 FirstFirst 123 LastLast

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •