2016-11-23 30 views
1

我在這個程序工作兩天,我找不到我在做什麼錯了。如果你能幫助我,我真的很感激它。問題是當我爲我的館長編號輸入11111並離開名稱框爲空,但不能保存策展人ID。如果我在框中添加了某項內容,並且我爲策展人ID輸入11111,則表示「ID已存在,請重試」。如果您將名稱留空,該如何保存ID?

private void SaveCuratorBtn_Click(object sender, RoutedEventArgs e) 
{ 
    curator Curator = new curator(); 
    try 
    { 
     Curator.ID = CuratorIDbox.Text; 
     bool sameid = false; 
     for (int i = 0; i < curatorlist.Count; i++) 
     { 
      if (curatorlist[i].ID == Curator.ID) 
      { 
       sameid = true; 
       break; 
      } 
     } 
     if (sameid) 
      MessageBox.Show("ID already exist please try again !"); 
     else 
     { 
      curatorlist.add(Curator); 
     } 
    } 
    catch (Exception error) 
    { 
     MessageBox.Show(error.Message); 
    } 
    try 
    { 
     bool checkingname = false; 
     Curator.NAME = CuratorNamebox.Text; 
     checkingname = true; 
     if (checkingname) 
     { 
      MessageBox.Show("Curator Saved"); 
     } 
    } 
    catch (Exception error) 
    { 
     MessageBox.Show(error.Message); 
    } 
} 
+1

您在添加項目到列表之前,檢查名稱是否爲空 – Kritner

+0

您能解釋它多一點兄弟? –

+1

如果館長無效(例如沒有提供姓名),則永遠不應該添加到列表中。您的第一個for循環會檢查策展人ID的存在,如果找不到,則會添加它。它應該是,如果它沒有被發現***和***它有一個名字,那麼它應該被添加。 – Kritner

回答

3
if (sameid) 
{ 
    MessageBox.Show("ID already exist please try again !"); 
} 
else 
{ 
    curatorlist.add(Curator); 
} 

此代碼塊執行以下操作:

  • 如果ID已經存在,顯示錯誤(好!)

  • 如果ID不存在,將整個策展人添加到curatorlist

你需要的是在你的代碼驗證的一個工序,以確保框中name文本框和文本框ID包含的信息。你可以做到這一點,像這樣(更換課程的名稱):

else 
{ 
    if(string.IsNullOrEmpty(NameTextbox.Text) || string.IsNullOrEmpty(IdTextbox.Text) 
{ 
    MessageBox.Show("Uh oh!") 
} else { 
    curatorlist.add(Curator); 
} 

在這裏,我們如果文本框連想添加館長curatorlist之前是空的檢查。如果您需要進行其他檢查(例如您的NameTextbox中沒有號碼[1,2,3,4]),可以採用多種方式。

+0

ok tnx bro。你給我一個想法 –

+0

很高興指導你。 –

1

你說:「當我爲我的館長ID輸入11111並將名稱保留爲空時,不會保存館長ID」;但是您提供的示例代碼中沒有任何內容阻止了這一點。這可能是你想要的;但你沒有這樣編碼:「curatorlist.add(策展人);」將無論名稱框中的內容添加到收藏中。

P.S.考慮使用字典,因爲查找會更快。

相關問題