代码如下:
OleDbConnection oleConn=new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =D:\\ShuangWeiTrainDepartment_Charge.mdb");
oleConn.Open();
DataSet ds = new DataSet();
OleDbCommand oleCmd =new OleDbCommand();
oleCmd.Connection =oleConn;
oleCmd.CommandText ="select * from User where Name='boss'";
OleDbDataAdapter oleDa =new OleDbDataAdapter(oleCmd);
oleDa.Fill(ds);
oleConn.Close();
这段访问Access的代码那里有错啊,怎么oleDa.Fill(ds);运行时老是报错啊。Sql语句:select * from User where Name='boss'在数据库中运行正常。
Access数据库有什么特别指定吗?

解决方案 »

  1.   

    User 是关键字,把表名改了试试看
      

  2.   

    OleDbConnection oleConn=new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =D:\\ShuangWeiTrainDepartment_Charge.mdb");

    DataSet ds = new DataSet();


     string sql = "select * from User where Name = '" + "boss" + "'";
    OleDbDataAdapter oleDa =new OleDbDataAdapter(sql,oleConn);
    oleDa.Fill(ds,"UserTable");

      

  3.   

    用Adapter时无需管理Connetion如果有关键字用中括号 例如[user]来处理
      

  4.   

    多谢:CSharpEx(CSharp)//注:输入的 Sql 语句表名和字段名一定要用 "[]" 括起来
    //注:输入的 Sql 语句表名和字段名一定要用 "[]" 括起来
    //注:输入的 Sql 语句表名和字段名一定要用 "[]" 括起来
    //注:输入的 Sql 语句表名和字段名一定要用 "[]" 括起来
    //注:输入的 Sql 语句表名和字段名一定要用 "[]" 括起来
    public class C_AccessProvider
    {
    public C_AccessProvider()
    {
    //
    // TODO: 在此处添加构造函数逻辑
    //
    } private OleDbConnection oleConn;
         
    public void DataAccess(string filePath)
    {
    oleConn=new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =" + filePath);
    } private void OpenConn()
    {
    if (oleConn.State ==System.Data.ConnectionState.Closed)
    {
    oleConn.Open();
    }
    }

    private void CloseConn()
    {
    if (oleConn.State==ConnectionState.Open)
    {oleConn.Close();}
    } //查询
    public DataSet Query_OleDataSet(string oleCmdstr)     
    {
    OpenConn();
    DataSet ds = new DataSet();
    OleDbCommand oleCmd =new OleDbCommand();
    oleCmd.Connection =oleConn;
    oleCmd.CommandText =oleCmdstr;
    OleDbDataAdapter oleDa =new OleDbDataAdapter(oleCmd);
    oleDa.Fill(ds);
    CloseConn();
    return ds;
    } //执行一个Sql命令,无返回。
    //注:输入的 Sql 语句表名和字段名一定要用 "[]" 括起来
    public void doSql(string oleCmdStr)
    {
    OleDbCommand oleCmd =new OleDbCommand();
    oleCmd.Connection = oleConn;
    oleCmd.CommandText = oleCmdStr;
    oleCmd.CommandType = CommandType.Text;
    OpenConn();
    oleCmd.ExecuteNonQuery();
    CloseConn();
    }
    }
    }