2014-03-18 21 views
0

我从Excel工作表导入数据在学生记录以.xls,因为它是当我打电话的功能上传Excel中是得到错误无效的转换,从“System.String”到“的System.Guid”

文件扩展名
public ActionResult Importexcel() 
     { 


      if (Request.Files["FileUpload1"].ContentLength > 0) 
      { 
       string extension = System.IO.Path.GetExtension(Request.Files["FileUpload1"].FileName); 
       string path1 = string.Format("{0}/{1}", Server.MapPath("~/Content/UploadedFolder"), Request.Files["FileUpload1"].FileName); 
       if (System.IO.File.Exists(path1)) 
        System.IO.File.Delete(path1); 

       Request.Files["FileUpload1"].SaveAs(path1); 
       string sqlConnectionString = @"Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-UserInfo-20140318063343.mdf;Initial Catalog=aspnet-UserInfo-20140318063343;Integrated Security=True"; 


       //Create connection string to Excel work book 
       string excelConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path1 + ";Extended Properties=Excel 12.0;Persist Security Info=False"; 
       //Create Connection to Excel work book 
       OleDbConnection excelConnection = new OleDbConnection(excelConnectionString); 

       //Create OleDbCommand to fetch data from Excel 
       OleDbCommand cmd = new OleDbCommand("Select [Id],[Name],[StudentId] from [Sheet1$]", excelConnection); 

       excelConnection.Open(); 
       OleDbDataReader dReader; 
       dReader = cmd.ExecuteReader(); 

       SqlBulkCopy sqlBulk = new SqlBulkCopy(sqlConnectionString); 
       //Give your Destination table name 
       sqlBulk.DestinationTableName = "StudentRecords"; 
       sqlBulk.WriteToServer(dReader); 
       excelConnection.Close(); 

       // SQL Server Connection String 


      } 

      return RedirectToAction("Import"); 
     } 

我收到以下错误,从 'System.String' 到 '的System.Guid'

无效转换。

我的模型是下面,我不能改变的Guid,因为它是我的必然要求

public class StudentRecord 
    { 

     public long Id { get; set; } 
     public string Name { get; set; } 

     public Guid StudentId { get; set; } 

    } 
+0

不知道到工作表的OLE访问是否都会有这个,但新的OleDbCommand(“选择[ID],[名],演员(StudentId作为唯一标识符)作为StudentID ..”可能会做工作 –

回答

1
studentRecord.Guid = new Guid("Mystring"); 

也许,你必须itarate槽从数据库中得到了什么SOU的对象,并解析上由一个达到上面的陈述。

你也可以看看使用TypeConverter。

0

将字符串解析为系统Guid,如下所示。它可以帮助你

System.Guid.Parse(yourStringVariable); 
相关问题