2013-12-16 265 views
-1

我有一个字符串变量,它正在接收Guid。我需要将该字符串转换回Guid,因为数据库字段的类型为Guid如何将字符串转换为Guid

我试着使用:

Guid myGuid = Guid.Empty;; 
myGuid = Guid.Parse(myId); 

但不断得到Format Exception; Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)

下面是我的代码:

public string addVehicleDetails(string vname, string vtype, string regNumber, string ftype, string fefficiency, string insby, DateTime datecreated, string myId) 
     { 

      string result = string.Empty; 
      tblVehicleDetail myVehicleDetails = new tblVehicleDetail(); 
      // Guid myGuid = Guid.Empty; 
      System.Guid myGuid = new Guid(myId); 
      // myGuid = Guid.Parse(myId); 
      try { 

       // Add details into vehicle details 
       myVehicleDetails.VehicleName = vname; 
       myVehicleDetails.VehicleType = vtype; 
       myVehicleDetails.RegistrationNumber = regNumber; 
       myVehicleDetails.FuelType = ftype; 
       myVehicleDetails.FuelEfficiency = fefficiency; 
       myVehicleDetails.InsuranceBy = insby; 

       myVehicleDetails.DateCreated = datecreated; 
       myVehicleDetails.Guid = myGuid; 

       dc.tblVehicleDetails.InsertOnSubmit(myVehicleDetails); 

       dc.SubmitChanges(); 

       return result = vname; 

      } 
      catch(Exception exp) 
      { 
       exp.ToString(); 
       return result = "Error in Adding Vehicle Details."; 
      } 
     } 

这个任何解决方案?

+1

请显示示例和代码,因为'Guid.Parse'完全符合您的需求。似乎有一个不同的问题。 – germi

+5

您是否检查myId的值?它格式正确吗? –

+2

你检查过http://stackoverflow.com/questions/350500/how-to-convert-a-string-to-a-guid – meorfi

回答

0

Format Exception告诉你,你的输入(String myId)是不是在一个公认的格式。

您应该清楚地处理异常,您的输入字符串格式不正确,因此请使用Guid.TryParse(如果输入为空或不是以可识别的格式输出,并且不会引发异常,则此方法返回false。 Here

还检查Guid.TryParseExact的方法。

myGuid = Guid.Parse(myId); 
    if (Guid.TryParse(myId, out newGuid)) 
    { 
    try 
     { 
     myVehicleDetails.DateCreated = datecreated; 
     myVehicleDetails.Guid = myGuid; 
     dc.tblVehicleDetails.InsertOnSubmit(myVehicleDetails); 
     dc.SubmitChanges(); 
     } 
    } 
    else 
     { 
     //Input string is not in correct format 
     } 
+0

尝试此操作后,我可以执行其他块即输入字符串的格式不正确 – Trupti

+0

@Trupti您应该检查您的输入字符串格式,通过这个您可以指定输入参数的格式在您的情况下您的'myID' http:// msdn .microsoft.com/en-us/library/system.guid.tryparseexact.aspx –

+0

实际上,在获取字符串时会出现类似“\”的斜线。******** - **** - *** * - **** - ************ \“”可能是因为我面临的问题 – Trupti