2014-07-23 21 views
-2

每當我點擊myScoresButton時,我都會遇到格式異常錯誤。以下是錯誤和代碼的截圖。 http://postimg.org/image/5bjqqgcnx/full/ 我該如何解決這個問題?Dbcontext對象不能讀取int.Parse

int num = 2; 
easyScoreLabel.Text = num.ToString(); 
message aMessage = new message(); 
aMessage.userName = nameTextBox.Text; 
aMessage.highScoreEasy = Int32.Parse(easyScoreLabel.Text); 
aMessage.highScoreMedium = Int32.Parse(mediumScoreLabel.Text); 
aMessage.highScoreHard = Int32.Parse(hardScoreLabel.Text); 
dbcontext.messages.Add(aMessage); 
dbcontext.SaveChanges(); 
+1

什麼是'eastScoreLabel.Text'的價值? –

+0

這是一個很好的問題。我更新了上面的代碼以顯示賦值給easyScoreLabel.Text的值,但現在我得到一個DbUpdateException。這是爲什麼發生?我附上了截圖http://postimg.org/image/8dipdt299/full/ – user3814247

+0

任何特定的原因,你創建一個'int','.ToString()' - 它,然後'Int.Parse()' - 字符串? – anaximander

回答

0

問題很簡單,你提供從easyScoreLabel.Text一個字符串,它是不是一個有效int格式。

爲了實現這些目的,發明了TryParse系列方法。

int.TryParse來自:

一個數字的字符串表示形式轉換爲它的32位帶符號整數等效。返回值指示操作是否成功。

使用方法如下:

int parsedScoreLabel; 
if (!Int32.TryParse(easyScoreLabel.Text, out parsedScoreLabel)) 
{ 
    // The parsing failed, maybe notify the user of an invalid value 
} 

aMessage.highScoreEasy = parsedScoreLabel; 
+0

我仍然得到一個DbUpdateException。這是更新後的代碼和異常情況的截圖。 http://postimg.org/image/b6jlahv0b/full/ – user3814247

+0

錯誤消息說什麼? –