2015-06-23 3 views
-2

У нас есть приложение asp.net, поддерживаемое SQL Server 2008 R2. Существует возможность обновлять или вставлять записи в базу данных с листа excel. После выбора файла для загрузки, когда я нажимаю кнопку обновления, страница обновляется, и ничего больше не происходит. База данных не будет обновлена. Я пробовал отлаживать код и, к моему удивлению, он работал нормально! Пробовал много раз, и то же самое происходит. Не будет обновляться из приложения, но обновляется при отладке! Я знаю, что публикация кода поможет людям понять, что problme лучше bu не разрешено публиковать какой-либо код в соответствии с политикой моей организации. Мои извинения. Любая помощь очень ценится!не удалось обновить данные Excel в базе данных сервера sql

ответ

0
I think in code u mentioned the Sheet name wrong so that it can't be inserted. 

may this code helps u.. 
string excelConnectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=Excel 8.0", path); 
       OleDbConnection connection = new OleDbConnection(); 
       connection.ConnectionString = excelConnectionString; 
       string qry = "write query here "' from [Sheet1$]"; 
       OleDbCommand command = new OleDbCommand(qry, connection); 
       if (connection.State == ConnectionState.Closed) 
       { 
        connection.Open(); 
       } 
       DbDataReader dr = command.ExecuteReader(); 
      string sqlConnectionString = @"Data Source=A115-PC;Initial Catalog=ErpDB;User ID=sa;[email protected]"; 
      // Bulk Copy to SQL Server 
      SqlBulkCopy bulkInsert = new SqlBulkCopy(sqlConnectionString); 
      bulkInsert.DestinationTableName = "MTPractiBilling"; // table name 
      bulkInsert.WriteToServer(dr); 

      DataSet dsClient = new DataSet(); 
      dsClient = ccSql.pBindDataSet("Select Path,FileSize,DocumentName from MTPractiBilling where UploadName='" + uploadnm + "'"); 
      if (dsClient.Tables[0].Rows.Count > 0) 
      { 
       for (int i = 0; i <= dsClient.Tables[0].Rows.Count; i++) 
       { 
        clpath = dsClient.Tables[0].Rows[i][0].ToString(); 

        FSize = dsClient.Tables[0].Rows[i][1].ToString(); 
        DocNm = dsClient.Tables[0].Rows[i][2].ToString(); 
        string s = clpath; 
        string[] words = s.Split('\\'); 
        clpath = words[4]; 
        scpath = words[4]; 
        clpath = ccSql.pReturnSingleValue “ personal query'"); 
        scpath = ccSql.pReturnSingleValue("personal query' ""); 
        int cnt = ccSql.pReturnIntegerValue("personal query'"'"); 
        //int match = ccSql.pReturnInteger("personal query'"); 
        if (cnt <= 0) 
        { 
         ccSql.pExecuteQuery("personal query''"); 

        } 
        else 
        { 
         ccSql.pExecuteQuery("personal query''"); 
         Label1.Text = DocNm.ToString() + "-" + FSize.ToString() + " Already Billed or Process.."; 
         return; 
        } 
       }