2017-01-21 1 views
0

는 로그인 버튼을 누른 후 나는이 오류가 발생합니다. 무엇을해야합니까?'System.Data.OleDb.OleDbException : 조건 식의 데이터 형식이 일치하지 않습니다.'</p> <blockquote> <p>"Data type mismatch in criteria expression." at this expression dr = cmd.ExecuteReader();</p> </blockquote> <p>나는이에 새로 온 사람 : 나는 프로그램 및 입력 로그인 정보를 실행할 때 오류

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"); 
     } 
    } 
} 
} 
+0

, 당신이 전달하는 텍스트입니다. SQL 매개 변수를 항상 사용하십시오. 암호를 일반 텍스트로 저장하지 마십시오. – Plutonix

답변

1

비밀번호 따라서는 괄호해야하는 예약 단어입니다

이드 숫자 인 경우
string cmdstr = "SELECT [password] FROM admin WHERE ID ='"+textBox1.Text+"'"; 
관련 문제