need4spdzz
2021-03-17 17:56
采纳率: 100%
浏览 143

C#连接access数据库,用户名和密码始终是错误的是为什么?

求解!用c#写了一个登陆界面,access数据库中有用户名和密码字段,但是在程序里运行的时候,我输入的是对的,但是程序里始终说我的用户名和密码错误,是为什么?真心求解,感激不尽

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;

namespace AccessLoginApp
{
    public partial class Form1 : Form
    {
        private OleDbConnection connection = new OleDbConnection();

        public Form1()
        {
            InitializeComponent();
            connection.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Program Files (x86)\work\Access\EmployeeInfo.accdb;Persist Security Info=False;";
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // TODO: 这行代码将数据加载到表“employeeDataDataSet.EmployeeData”中。您可以根据需要移动或删除它。
            //this.employeeDataTableAdapter.Fill(this.employeeDataDataSet.EmployeeData);

                try
                {
                    connection.Open();
                    checkConnection.Text = "Connection Successful!";
                    connection.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error" + ex);
                }
        }
        private void btn_Login_Click(object sender, EventArgs e)
        {
                connection.Open();
                OleDbCommand command = new OleDbCommand();
                command.Connection = connection;
                command.CommandText = "select * from EmployeeData where Username=' " + txt_Username.Text + " '  and Password=' " + txt_Password.Text + " ' ";
                
                OleDbDataReader reader = command.ExecuteReader();

                int count = 0;
                while (reader.Read())
                {
                    count = count + 1;
                }

                if (count == 1)
                {
                    MessageBox.Show("Username and password is correct");
                }
                else if (count > 1)
                {
                    MessageBox.Show("Duplicate Username and password");
                }
                else
                {
                    MessageBox.Show("Username and password is not correct");
                }


                //if (reader.Read())
                //{
                //    MessageBox.Show("Username and password is correct");
                //}
                //else
                //{
                //    MessageBox.Show("Username and password is not correct");
                //}

                
                connection.Close();
            }
     }
}

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 多鱼的夏天 2021-03-17 18:42
    已采纳

    可以把这个sql 打印出来在access里运行一下,看看结果

    command.CommandText = "select * from EmployeeData where Username=' " + txt_Username.Text + " ' and Password=' " + txt_Password.Text + " ' ";

    已采纳该答案
    评论
    解决 1 无用
    打赏 举报
  • 有问必答小助手 2021-03-17 18:23

    你好,我是问答小助手,非常抱歉,本次您提出的有问必答问题,目前超出我们的服务范围,暂时无法为您解答。

    首次提问人员可免费体验一次有问必答服务。目前首次提问的问题服务范围为:Java开发、数据库等领域专业技术问题,为您提供问题的解决思路和指导。不提供源码代写、项目文档代写、论文代写、安装包资源发送或安装指导等服务。

    我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。

    评论
    解决 1 无用
    打赏 举报
  • 多鱼的夏天 2021-03-18 18:44
    评论
    解决 1 无用
    打赏 举报

相关推荐 更多相似问题