2013-04-05 36 views
0

我完全不熟悉C#,所以請耐心等待。C#字符串格式最好的重載方法匹配錯誤

private static string GetFormattedValue(string dataType, dynamic cellValue) 
    { 
     string formattedCellValue = string.Empty; 
     if (cellValue == null) 
      cellValue = DBNull.Value; 

     if (dataType == "STRING") 
     { 
      formattedCellValue = string.Format("'{0}',", cellValue); 
     } 
     else if (dataType == "NUMBER") 
     { 
      if (string.IsNullOrEmpty(Convert.ToString(cellValue))) 
       cellValue = 0; 
      formattedCellValue = string.Format("'{0}',", cellValue.ToString("F17")); 
     } 
     else if (dataType == "DATE") 
     { 
      formattedCellValue = string.Format("'{0}',", cellValue); 
     } 
     else 
     { 
      formattedCellValue = string.Format("'{0}',", cellValue.ToString("F17")); 
     } 

     return formattedCellValue; 

dataType是NUMBER和cellValue是一個整數,我得到一個錯誤,指出: 「爲string.ToString(System.IFormatProvider)的最佳重載的方法匹配具有一些無效參數」

cellValue通常是非常小的數字,如果沒有「F17」,將作爲科學記數法返回(這會導致另一個錯誤),但也會導致上述錯誤的整數。

這不是我的代碼,我只是運行它,知道足夠的一步通過它。任何想法如何確定cellValue是否可讀取以確定是否爲整數?或者其他更好的建議?

回答

0

F17引用雙數據類型......不是一個字符串。

試試這個,讓我知道:

 else if (dataType == "NUMBER") 
     { 
      if (string.IsNullOrEmpty(Convert.ToString(cellValue))) 
       cellValue = 0; 
      formattedCellValue = string.Format("'{0}',", Convert.ToDouble(Convert.ToString(cellValue)).ToString("F17")); 
     }