繁体   English   中英

'System.Data.OleDb.OleDbException:条件表达式中的数据类型不匹配。' 错误

[英]'System.Data.OleDb.OleDbException: Data type mismatch in criteria expression.' error

当我运行程序并输入登录详细信息时,按下登录按钮后出现此错误:

“条件表达式中的数据类型不匹配。” 在这个表达式中 dr = cmd.ExecuteReader();

我是新手。 该怎么办?

namespace Inventory_System
{
    public partial class MainForm : Form
    {
      private OleDbConnection mycon;
      private OleDbDataReader dr=null;
      private OleDbCommand cmd=null;
      public MainForm()
      {
        mycon = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\User\Documents\SharpDevelop Projects\Inventory System\inventory.mdb;Persist Security Info=False");
        InitializeComponent();  
      }
      void Button2Click(object sender, EventArgs e)
      {
        this.Close();
      }
      void Button1Click(object sender, EventArgs e)
      {
        mycon.Open();
        string cmdstr = "SELECT password FROM admin WHERE ID ='"+textBox1.Text+"' ";
        cmd = new OleDbCommand(cmdstr, mycon);
        dr = cmd.ExecuteReader();
        string[] login = new string[3];

        while (dr.Read())
        {
            login[3] = (dr["password"].ToString());
        }

        dr.Close();
        mycon.Close();

         if (maskedTextBox1.Text == login[3])
        {
           MessageBox.Show("LOG-IN SUCCESFUL!", "Confirmation Message");
           Form control = new MainForm();
           control.Show();
           this.Hide();
        }
        else
        {
            MessageBox.Show("LOG-IN FAILED!", "Confirmation Message");
        }
    }
}
}

密码是保留字,因此必须用括号括起来:

string cmdstr = "SELECT [password] FROM admin WHERE ID ='"+textBox1.Text+"'";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM