2012-08-25 25 views
0

在这里我上传了Excel表格,它将数据添加到sql表格中。代码在localhost上完美工作。在托管它在服务器上它给我的错误, 访问路径'D:\ INETPUB \ VHOSTS \ vivek- vichar.org .... \ temp \ excelsheets \ Student RegistrationTrial2.xls'被拒绝。访问路径'D: INETPUB VHOSTS vivek-vichar.org .... temp excelsheets Student RegistrationTrial2.xls'被拒绝

我已经创建了temp \ excelsheets目录。

protected void import_xls_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      string savePath; 
      savePath = Server.MapPath("/temp/excelsheets"); 

      if (xlsupload.HasFile) 
      { 
       string fileName = xlsupload.FileName; 
       savePath = Path.Combine(savePath, fileName); 
       xlsupload.SaveAs(savePath);     

       string excelConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + savePath + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1'"; 

       OleDbConnection excelConnection = new OleDbConnection(excelConnectionString); 
       excelConnection.Open(); 

       OleDbCommand cmd = new OleDbCommand("select * from [Sheet2$]", excelConnection);      
       OleDbDataReader dReader = cmd.ExecuteReader(); 

       SqlBulkCopy sqlBulk = new SqlBulkCopy(SqlConnectionstring.mainConnectionString, SqlBulkCopyOptions.KeepIdentity); 
       if(grouplist.SelectedItem.Text == "A") 
       { 
        sqlBulk.DestinationTableName = "dbo.studentA"; 
       } 
       else if (grouplist.SelectedItem.Text == "B") 
       { 
        sqlBulk.DestinationTableName = "dbo.studentB"; 
       } 
       else if (grouplist.SelectedItem.Text == "C") 
       { 
        sqlBulk.DestinationTableName = "dbo.studentC"; 
       } 
       sqlBulk.ColumnMappings.Add("UserName", "UserName"); 
       sqlBulk.ColumnMappings.Add("Password", "Password"); 
       sqlBulk.ColumnMappings.Add("Name", "Name"); 
       sqlBulk.ColumnMappings.Add("Standard", "Standard"); 
       sqlBulk.ColumnMappings.Add("Division", "Division"); 
       sqlBulk.ColumnMappings.Add("SchoolName", "SchoolName"); 
       sqlBulk.ColumnMappings.Add("Language", "Language");          

       sqlBulk.WriteToServer(dReader); 

       lblmsg.Visible = true; 
       lblmsg.Text = "Your data uploaded successfully"; 
       excelConnection.Close(); 
      } 
     } 
     catch (Exception ex) 
     { 
      lblmsg.Visible = true; 
      lblmsg.Text = ex.Message.ToString(); 

     } 

Webconfig

<connectionStrings> 
<add name="sqlconn" connectionString="Data Source=<servername>;User Id=******;Password=******;persist security info=False;Connect Timeout=0;Max Pool Size=10000" providerName="System.Data.SqlCient" />  

回答

1

在服务器上,找到包含它与文件或文件夹: -

  • 单击鼠标右键,选择属性。
  • 将您的进程所运行的用户帐户添加到具有读/写访问权限的安全权限中。
0

您的连接字符串,这里是你的数据库。需要访问电子表格的'用户'是IIS应用程序运行时的用户,可能是IUSR帐户,或者应用程序池配置为使用的帐户,具体取决于IIS的版本和设置。

相关问题