2013-07-12 43 views
0

我正在處理我的C#ADO.NET應用程序。我已將C#應用程序連接到SQL Server數據庫,並且可以執行簡單的CRUD操作。當我的數據庫中的某個人有生日時,我想讓我的應用程序打開我的提醒表單,因此我提出了查詢,並且所有今天有生日的人都在我的查詢中,並使用提醒表單中的屬性更改標籤的文本與生日的人的姓名。現在,我只是不知道如何改變未來標籤的文本時,不止一個人擁有的生日我的查詢......我不知道如何在我的foreach循環得到下一個元素...使用屬性更改標籤的文本

這裏是我的代碼:

Form2 forma = new Form2(); 
    TBirthDayEntities today_born = new TBirthDayEntities(); 

    public Form1() 
    { 
     InitializeComponent(); 
     timer1.Tick += new EventHandler(timer1_Tick); 
     timer1.Interval = 1000; 
     timer1.Enabled = true; 
     timer1.Start(); 
    } 

    private Boolean provjera_rodj() 
    { 
     Boolean flag = false; 
     int cnt = 0; 


     IQueryable<TBD> query; 
     using (var data = new TBirthDayEntities()) 
     { 
      query = (from x in data.TBD 
        where x.BirthDay.Day == System.DateTime.Now.Day && x.BirthDay.Month == System.DateTime.Now.Month 
        select x); 

      foreach (var x in query) 
      { 
        today_born.TBD.Add(x); 
        cnt += 1; 
        flag = true; 


      } 
     } 





     switch (cnt) 
     { 
      case 1: 
       { 
        foreach (var x in today_born.TBD) 
        { 
           forma.p_label2 = x.FName + " " + x.LName; 
        } 
        break; 
       } 
      case 2: 
       { 
        foreach (var x in today_born.TBD) 
        { 
         forma.p_label2 = x.FName + x.LName; 
         forma.p_label3 = x.FName + x.LName; //wrong 
        } 
        break; 
       } 

     } 



     return flag; 
    } 

    private void timer1_Tick(object sender, EventArgs e) 
    { 
     Boolean flag = provjera_rodj(); 
     if (flag == true) 
     { 
      forma.Show(); 
      timer1.Stop(); 
     } 

    } 

回答

0
switch (cnt) 
    { 
     case 1: 
     case 2: 
      { 
       var lstLabel = new List<Label>() 
       { 
        forma.p_label2 
        , forma.p_label3 
       }; 
       for(int i = 0; i < today_born.TBD.Count; i++) 
       { 
        var x in today_born.TBD[i]; 

        lstLabel[x].Text = x.FName + x.LName; 
       } 
       break; 
      } 

    } 

編輯:

switch (cnt) 
    { 
     case 1: 
     case 2: 
      { 
       var lstLabel = new List<Action<string>>() 
       { 
        new Action<string>(s =>forma.p_label2 = s) 
        , new Action<string>(s =>forma.p_label3 = s) 
       }; 
       for(int i = 0; i < today_born.TBD.Count; i++) 
       { 
        var x = today_born.TBD[i]; 

        lstLabel[x](x.FName + x.LName); 
       } 
       break; 
      } 

    } 
+0

回答我的問題首先感謝。 Ofc p_label2和p_label3不是標籤,我在我的問題中寫道,我使用標籤屬性來更改其文本,而p_label2和p_label3是用於更改標籤文本的屬性。我仍然有列表類型的問題,我應該把這些括號放在什麼位置? –

+0

請檢查我的編輯。 – Serge

+0

你可以標記你的問題,如果它有效的話。 – Serge