我这里有一段把excel里的内容倒入到datagrid中的代码,如下:string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\MyTel.xls;Extended Properties=Excel 8.0;";

OleDbConnection conn = new OleDbConnection(strConn);
OleDbDataAdapter adp = new OleDbDataAdapter("SELECT * FROM [Tel$]", strConn);
DataSet ds = new DataSet();
adp.Fill(ds);
DataGrid1.DataSource = ds.Tables[0].DefaultView;
DataGrid1.DataBind();但在导入时,却出现下面的错误:Microsoft Jet 数据库引擎打不开文件'C:\MyTel.xls'。 它已经被别的用户以独占方式打开,或没有查看数据的权限。 
请问大家,这个问题应该怎么解决!!!!!!!!!!!!

解决方案 »

  1.   

    看一下进程中有没有Excel这个进程。如果有的话就杀掉。
    顺便在工程目录中添加aspnet这个用户,然后勾上完全控制。
      

  2.   

    1.有没有别的程序在用excel,关闭
    2.你的数据库中有个表有打开了“设计视图”,把它关闭
      

  3.   

    你的文件放在C:啊?
    检查一下ASPNET用户对C:是否有读写权限。其实最好把excel文件放在项目的目录里面
      

  4.   

    需求是这样的:现在正在搞一个程序,要从excel里批量导入信息到DataGrid然后,再保存到数据库里面,我做了一个excel的模板给用户下载,用户下载后直接往excel里填数据,然后再导入到datagrid中,考虑用户对程序不一定精通,但是直接导入,又会出上面的错误,真不知道怎么办才好了!!!!!!!!!!大家帮帮我吧!!!!!!!!
      

  5.   

    SELECT * FROM [Tel$]
    其中Tel$是什么东东
    我也正好要做这个功能
      

  6.   

    //读取Excel表数据二
    private DataSet CreateDataSource(string path)

    string strConn; 
    strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + 
    "Data Source=d:\\Inetpub\\wwwroot\\Web6\\contacts.xls;"+ 
    "Extended Properties=Excel 8.0;"; 
    OleDbConnection conn = new OleDbConnection(strConn); 
    OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [list$]", strConn); 
    DataSet ds = new DataSet(); 
    da.Fill(ds); 
    return ds; 
    }
      

  7.   

    private void Button1_Click(object sender, System.EventArgs e)
    {
    string path = this.file.Value;
    path.Replace("\\","\\\\");
    this.DataGrid1.DataSource = CreateDataSource(path);
    this.DataGrid1.DataBind();
    }
      

  8.   

    需求是这样的:现在正在搞一个程序,要从excel里批量导入信息到DataGrid然后,再保存到数据库里面,我做了一个excel的模板给用户下载,用户下载后直接往excel里填数据,然后再导入到datagrid中,.....
    =====
    用户填完以后是什么流程呢?
      

  9.   

    MSDN的WebCast上,邵志东的“数据集的使用方法和技巧”是否可以提供demo下载?有这样的讲座
    http://www.microsoft.com/china/msdn/events/webcasts/shared/webcast/episode.aspx?newsID=1242350
      

  10.   

    string con = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + txtBoxName.Text + ";Extended Properties=Excel 8.0";
          OleDbConnection oleConnection = new OleDbConnection(con);
          try
          {
            string strCommandText = "Select * From [Sheet1$]";
            oleConnection.Open();
            DataSet dsRead = new DataSet();
            OleDbDataAdapter oleAdpter = new OleDbDataAdapter(strCommandText, oleConnection);
            oleAdpter.Fill(dsRead, "IconName");
            DataTable dt = new DataTable();
            oleAdpter.Fill(dt);
            dataGridView1.DataSource = dt;
            OneToOne();
          }
          catch (Exception ex)
          {
            MessageBox.Show(ex.ToString());
          }
          finally
          {
            oleConnection.Close();
          }txtBoxName.Text是excel的路径
      

  11.   

    楼主,你把excel导入Dataset是否已经解决,说话呀,我也遇到同样的问题。
      

  12.   

    C:\\MyTel.xls
    ============
    要用虚拟路径