title: "Unclosed quotation mark after the character string" error
body: <blockquote>
    <p>Server Error in '/' Application.</p>
    
    <p>Incorrect syntax near 'B'. Unclosed quotation mark after the character
    string ',e)'.</p>
    
    <p>Description: An unhandled exception occurred. </p>
    
    <p>Exception Details: System.Data.SqlClient.SqlException: Incorrect
    syntax near 'B'. Unclosed quotation mark after the character string
    ',e)'.</p>
    
    <p>Source Error: </p>
    
    <p>An unhandled exception was generated during the execution of the
    current web request. Information regarding the origin and location of
    the exception can be identified using the exception stack trace below.</p>
    
    <p>Stack Trace: </p>
    
    <p>[SqlException (0x80131904): Incorrect syntax near 'B'. Unclosed
    quotation mark after the character string ',e)'.]<br>
    System.Data.SqlClient.SqlConnection.OnError(SqlException exception,
    Boolean breakConnection, Action'1 wrapCloseInAction) +3278868<br>
    System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject
    stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) +791<br>
    System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior,
    SqlCommand cmdHandler, SqlDataReader dataStream,
    BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject
    stateObj, Boolean&amp; dataReady) +4927<br>
    System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String
    methodName, Boolean async, Int32 timeout, Boolean asyncWrite) +1275<br>
    System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource'1
    completion, String methodName, Boolean sendToPipe, Int32 timeout,
    Boolean asyncWrite) +367<br>
    System.Data.SqlClient.SqlCommand.ExecuteNonQuery() +386<br>
    HalcytronicsInc.Controllers.ExcellUploadController.Upload(HttpPostedFileBase
    upload) in C:\Users\M1037515\Documents\Visual Studio
    2015\Projects\HalcytronicsInc\HalcytronicsInc\Controllers\ExcellUploadController.cs:94
    lambda_method(Closure , ControllerBase , Object[] ) +139<br>
    System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext
    controllerContext, IDictionary'2 parameters) +229<br>
    System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext
    controllerContext, ActionDescriptor actionDescriptor, IDictionary'2
    parameters) +35<br>
    System.Web.Mvc.&lt;>c__DisplayClass15.b__12()
    +80    System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter
    filter, ActionExecutingContext preContext, Func'1 continuation) +453<br>
    System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter
    filter, ActionExecutingContext preContext, Func'1 continuation) +453<br>
    System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext
    controllerContext, String actionName) +533</p>
  </blockquote>
  
  <pre><code>using Excel;
  using System;
  using System.Collections.Generic;
  using System.Data;
  using System.IO;
  using System.Linq;
  using System.Web;
  using System.Web.Mvc;
  using HalcytronicsInc.Models;
  using System.Data.SqlClient;
  
  namespace HalcytronicsInc.Controllers
  {
      public class ExcellUploadController : Controller
      {
          public string country;
          public string state;
          public string city;
          public string name;
          public string pno;
          // GET: ExcellUpload
          public ActionResult Index()
          {
              return View();
          }
          public ActionResult Upload()
          {
              return View();
          }
  
          [HttpPost]
          //[ValidateAntiForgeryToken]
          public ActionResult Upload(HttpPostedFileBase upload)
          {
  
              if (ModelState.IsValid)
              {
  
                  if (upload != null &amp;&amp; upload.ContentLength &gt; 0)
                  {
                      // ExcelDataReader works with the binary Excel file, so it needs a FileStream
                      // to get started. This is how we avoid dependencies on ACE or Interop:
                      Stream stream = upload.InputStream;
  
                      // We return the interface, so that
                      IExcelDataReader reader = null;
  
  
                      if (upload.FileName.EndsWith(".xls"))
                      {
                          reader = ExcelReaderFactory.CreateBinaryReader(stream);
                      }
                      else if (upload.FileName.EndsWith(".xlsx"))
                      {
                          reader = ExcelReaderFactory.CreateOpenXmlReader(stream);
                      }
                      else
                      {
                          ModelState.AddModelError("File", "This file format is not supported");
                          return View();
                      }
  
                      reader.IsFirstRowAsColumnNames = true;
  
                      DataSet result = reader.AsDataSet();
                      // string connectionString = null;
                      SqlConnection connection;
                      SqlCommand command;
                      SqlDataAdapter adpter = new SqlDataAdapter();
  
                      connection= new SqlConnection(/*"Data Source=A2ML10582;User ID =sa;Password =****************;Integrated Security = true"*/
                          "Data Source=A2ML10582;Initial Catalog=HalcytronicsINCSitecore_Master;User ID=sa;Password=****************"
                          );
                      //connectionString = "Data Source = 172.17.2.13; Initial Catalog ="User ID = sa Password = ***********"  Integrated Security = true";
  
                      //connection = new SqlConnection(connectionString);
  
                      int i = 0;
                      connection.Open();
                      for (i = 0; i &lt;= result.Tables[0].Rows.Count - 1; i++)
                      {
                          country = result.Tables[0].Rows[i].ItemArray[0].ToString();
                          state = result.Tables[0].Rows[i].ItemArray[1].ToString();
                          city =result.Tables[0].Rows[i].ItemArray[2].ToString();
                          name = result.Tables[0].Rows[i].ItemArray[3].ToString();
                          pno = result.Tables[0].Rows[i].ItemArray[4].ToString();
                          string sql = "insert into SalesRepresentative(" + country + ",'" + state + "'," + city + "','+" + name + "'," + pno + ")";
                          command = new SqlCommand(sql, connection);
                          adpter.InsertCommand = command;
                          adpter.InsertCommand.ExecuteNonQuery();
                      }
                      connection.Close();
  
                      reader.Close();
  
                      return View(result.Tables[0]);
                  }
                  else
                  {
                      ModelState.AddModelError("File", "Please Upload Your file");
                  }
              }
              return View();
          }
      }
  }
  </code></pre>