Access 2000數據庫放在d:\paster\data.mdb中,執行到dr=cmd.ExecuteReader()句中出錯,錯誤提示如下:An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in system.data.dll下面是代碼:
private bool ValidateUser()
{
string strUsername=txtUserID.Text;
string strPassword=txtPassword.Text; string sql="select UserType from User where Username='"+strUsername+"' and Password='"+strPassword+"'"; OleDbConnection cn=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\Paster\\Data.mdb");
OleDbCommand cmd=new OleDbCommand(sql,cn);
OleDbDataReader dr; cn.Open();
dr=cmd.ExecuteReader(); bool flag=false; while (dr.Read())
{
flag=true;
this.UserType=Convert.ToInt16(dr[0]);
} dr.Close();
cn.Close(); return flag;
}

解决方案 »

  1.   

    頭部也加了
    using System.Data;
    using System.Data.OleDb;
      

  2.   

    .0;Data Source=D:\\Paster\\Data.mdb");这个有问题吧
      

  3.   

    d:\paster\data.mdb
    C#我不熟悉
      

  4.   

    string sql="select UserType from [User] where Username='"+strUsername+"' and Password='"+strPassword+"'";
      

  5.   

    Users 是保留字,只能照楼上所言
      

  6.   

    因为SQL语句不能识别User,有两种方法:
    1.将此句:string sql="select UserType from User where Username='"+strUsername+"' and Password='"+strPassword+"'";
    改为:string sql="select UserType from [User] where Username='"+strUsername+"' and Password='"+strPassword+"'";
    2.更改表名User为UserLogin,再更改SQL语句.