using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OleDb;namespace AccessApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            LinkDB linkdb = new LinkDB();
            linkdb.DisplayData();        }
    }
}
  class LinkDB
{
    static OleDbConnection connection = new OleDbConnection("@Provider=Microsoft.Jet.OLEDB.4.0;Data   Source=db1.mdb ");
    OleDbCommand cmd = new OleDbCommand("select   *   from   room", connection);
    OleDbDataReader Rd;    public void DisplayData()
    {
        connection.Open();
        Rd = cmd.ExecuteReader();
        while (Rd.Read())
        {
            Console.WriteLine("F:{0},   S:{1} ", Rd.GetString(0), Rd.GetString(0));
        }
        connection.Close();
    }

 
这是我修改别人的代码,没有错误,可运行时却出现了如题错误,求教

解决方案 »

  1.   

    static OleDbConnection connection = new OleDbConnection("@Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb ");
    把红字处的 @ 删掉
      

  2.   

    连接字符串对不对?
    普通方式(最常用)连接ACCESS数据库:string ConnString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\App1\你的数据库名.mdb; User Id=admin; Password=";l
    static OleDbConnection connection = new OleDbConnection(ConnString);
    红色部分路径对不对?
      

  3.   

    Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;IMEX=1';Data Source=db1.mdb
     class LinkDB
    {
      static OleDbConnection connection = new OleDbConnection("@Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb ");  OleDbDataReader Rd;  public void DisplayData()
      {
      connection.Open();
      OleDbCommand cmd = new OleDbCommand("select * from room", connection);
      Rd = cmd.ExecuteReader();
      while (Rd.Read())
      {
      Console.WriteLine("F:{0}, S:{1} ", Rd.GetString(0), Rd.GetString(0));
      }
      connection.Close();
      }
      

  4.   

    我懂你意思,可我已经把db1.mdb托到DEGUG文件里了啊,应该不用在写具体的路径了吧.