Từ 1 tới 9 trên tổng số 9 kết quả

Đề tài: Lỗi from đăng nhập

  1. #1
    Ngày gia nhập
    06 2011
    Bài viết
    52

    Angry Lỗi from đăng nhập

    tình hình là mình mắc chỗ login này ! khi mình đăng nhập thành công thì lưu tài khoản đăng nhập để lấy những thông tin cần thiết ,tài khoản đăng nhập lưu vào file xml
    Lỗi nó như thế này T_T
    -Khi đăng nhập thành công để vào chương trình
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		Capture1.PNG
Lần xem:	2
Size:		25.1 KB
ID:		9038
    -Khi chạy vào from main lại hiện thông báo lỗi đăng nhập
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		Capture3.PNG
Lần xem:	6
Size:		109.7 KB
ID:		9039
    code của from đăng nhập đây các bạn xem giúp mình xem lỗi chỗ nào!
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using DevExpress.XtraBars;
    using QuanLyNhanSu.Class;
    using System.Data.SqlClient;
    using DevExpress.XtraEditors;
    using System.Xml;
    namespace QuanLyNhanSu.GUI
    {
    public partial class DangNhap : DevExpress.XtraBars.Ribbon.RibbonForm
    {
    public DangNhap()
    {
    InitializeComponent();
    }


    private SqlConnection conn;
    private SqlCommand cmd;
    private SqlDataReader read;
    ketnoidatabase db = new ketnoidatabase();
    private void ghitaikhoan()
    {
    dangnhapbe taikhoan = new dangnhapbe();
    dangnhapbl chxuly = new dangnhapbl();
    taikhoan.Manv = textEdit1.Text;
    chxuly.ghidulieu(taikhoan, Environment.CurrentDirectory + "/TaiKhoan.xml");

    }
    public void kiemtradangnhap(string taikhoan, string matkhau)
    {
    string kiemtra = "select MaNV,MatKhau from TaiKhoanPM";
    conn = db.ketnoisql();
    try
    {
    conn.Open();
    cmd = new SqlCommand(kiemtra, conn);
    read = cmd.ExecuteReader();
    while(read.Read())
    {
    if (taikhoan == read[0].ToString() && matkhau == read[1].ToString())
    {
    XtraMessageBox.Show("dang nhap thanh cong");

    FormChinh a = new FormChinh();
    a.Show();
    ghitaikhoan();
    }
    else {
    XtraMessageBox.Show("dang nhap that bai Loi Mật khẩu hoặc tài khoản!");
    }

    }
    }
    catch (Exception ex)
    {
    XtraMessageBox.Show("dang nhap that bai Loi :" + ex.Message); ;
    }
    finally
    {
    conn.Close();
    }
    }
    private void btndangnhap_Click(object sender, EventArgs e)
    {
    kiemtradangnhap(textEdit1.Text,textEdit2.Text);
    }


    private void DangNhap_Load(object sender, EventArgs e)
    {

    }
    }
    }
    Đã được chỉnh sửa lần cuối bởi o0ocuchuoio0o : 05-04-2012 lúc 11:50 PM. Lý do: Lưu ý ở đây mình đăng nhập thành công rùi mà nó vẫn hiện thông báo lỗi đăng nhập nha! thanks các bạn!
    chickenIT

  2. #2
    Ngày gia nhập
    04 2009
    Nơi ở
    /Users/richtran
    Bài viết
    103

    Ngay trong vòng for, bạn kiểm tra nếu đã đăng nhập thành công thì break đi.

  3. #3
    Ngày gia nhập
    06 2011
    Bài viết
    52

    vẫn lỗi như thế bạn ah! lần này nó hiện thông báo đăng nhập thất bại rùi lại hiện đăng nhập thành công chạy vào form main ^^!
    chickenIT

  4. #4
    Ngày gia nhập
    05 2011
    Bài viết
    61

    sao ở câu lệnh sql kiểm tra bạn ko thêm điều kiện where TenTaiKhoan = @tentaikhoan and MatKhau = @matkhau, rùi ở SqlDataReader mình chỉ làm nếu Reader.Read() thì lưu thông tin tài khoản và hiện đăng nhập thành công rồi Run form Main ??

  5. #5
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    Trích dẫn Nguyên bản được gửi bởi vuanphuong Xem bài viết
    sao ở câu lệnh sql kiểm tra bạn ko thêm điều kiện where TenTaiKhoan = @tentaikhoan and MatKhau = @matkhau, rùi ở SqlDataReader mình chỉ làm nếu Reader.Read() thì lưu thông tin tài khoản và hiện đăng nhập thành công rồi Run form Main ??
    Bạn đó dùng kiểu lấy hết các tài khoản trong DB. Sau đó so sánh từng cái một xem có cái nào trùng với cái ngừoi dùng nhập ko? chứ ko phải là chỉ lấy đk luôn.hihi. Nhưng nên xài kiểu lấy luôn trong sql cho đỡ khổ.hihi.
    Skype: mrfour.it - Yahoo:mrfour_it
    Gmail: mrfour.it@gmail.com
    Bạn muốn học lập trình? Bạn chưa có kiến thức cơ bản? Bạn muốn học từ cơ bản tới nâng cao?... Bạn muốn có source code để tham khảo? Muốn có người hỗ trợ khi học?....http://www.laptrinh123.com sẽ giúp bạn những điều đó!

  6. #6
    Ngày gia nhập
    06 2011
    Bài viết
    52

    Mặc định Lỗi from đăng nhập

    thế mà vẫn lỗi anh 4 ah! ^^! đăng nhập thành công rùi mà vẫn hiện thông báo lỗi khi đăng nhập hài!
    chickenIT

  7. #7
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    Visual C# Code:
    1. while(read.Read())
    2. {
    3. if (taikhoan == read[0].ToString() && matkhau == read[1].ToString())
    4. {
    5. XtraMessageBox.Show("dang nhap thanh cong");
    6.  
    7. FormChinh a = new FormChinh();
    8. a.Show();
    9. ghitaikhoan();
    10. }
    11. XtraMessageBox.Show("dang nhap that bai Loi Mật khẩu hoặc tài khoản!");
    12. }
    13.  
    14.  
    15. }
    E viết thế ko lỗi mới lạ. Trường hợp ko thông báo khi thành công với đoạn trên chỉ xảy ra khi chỉ có 1 tài khoản thui. Nguyên nhân là tại e dùng if-else đó. Chẳng hạn có 10 bản ghi mà cái tài khoản người dùng nhập thuộc tên thứ 10 thì e sẽ nhận dc 9 cái thông báo thất bại, cái cuối cùng mới thành công.... Nói thế chắc e hiểu rồi. Nếu muốn vẫn làm kiểu đó thì e cần dùng thêm biến trạng thái. ví dụ:
    bool isSuccess=false;
    if (taikhoan == read[0].ToString() && matkhau == read[1].ToString())
    {
    Issuccess=true;
    ....
    break; //thoát thui.
    }
    //kiem tra xem có dk thanh cong ko? nếu ko thì mời xuất thông báo( ngoài vòng while nhé)
    if(!is Success)
    //dag nhap that bai....

    Nhưng dù sao vẫn khuyên em đừng viết kiểu đó tổ mệt người.hihi
    Skype: mrfour.it - Yahoo:mrfour_it
    Gmail: mrfour.it@gmail.com
    Bạn muốn học lập trình? Bạn chưa có kiến thức cơ bản? Bạn muốn học từ cơ bản tới nâng cao?... Bạn muốn có source code để tham khảo? Muốn có người hỗ trợ khi học?....http://www.laptrinh123.com sẽ giúp bạn những điều đó!

  8. #8
    Ngày gia nhập
    05 2011
    Bài viết
    61

    Tốc độ xữ lý trên Sql nhanh rất nhiều so với trên ngôn ngữ. Đặt điều kiện so sánh sẽ giảm đở việc độc bản ghi trên csdl. Cách tốt nhất nên kiểm tra trên sql

  9. #9
    Ngày gia nhập
    06 2011
    Bài viết
    52

    uh cảm ơn bạn ! mình đã làm theo kiểu khác rùi ! Lại cái sao asp.net mình làm kiểu này ko lỗi mà vô winform lại lỗi nhỉ?
    chickenIT

Các đề tài tương tự

  1. Hướng dẫn tạo Form Đăng Ký và Đăng Nhập - part 1
    Gửi bởi nndung179 trong diễn đàn Tutorials và Thủ thuật lập trình C#, ASP.NET
    Trả lời: 19
    Bài viết cuối: 21-08-2013, 07:04 PM
  2. Nên ẩn hay đóng form đăng nhập sau khi đăng nhập xong?
    Gửi bởi billsang trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 03-11-2011, 09:53 PM
  3. Lỗi WebDev.WebServer.exe khi đăng nhập trên localhost trên trang đăng nhập
    Gửi bởi canhkho trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 8
    Bài viết cuối: 18-05-2011, 04:14 PM
  4. Trả lời: 6
    Bài viết cuối: 18-05-2011, 01:25 PM
  5. Hướng dẫn chương trình đăng nhập đăng xuất trên Winform. Ai giúp mình?
    Gửi bởi son0nline trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 02-08-2010, 12:02 AM

Quyền hạn của bạn

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