2012-07-13 147 views
0

我的代碼將數據保存到數據庫時遇到問題。我有一個文本框和一個組合框,但是當我在文本框中鍵入數據並在組合框中選擇數據並單擊保存時,沒有任何反應,並且在編譯期間沒有發現錯誤。我能否知道究竟出了什麼問題,並給我一些解決辦法?使用linq將數據保存到數據庫

enter code here private void btnCreate_Click(object sender, EventArgs e) 
    { 
     using (testEntities Setupctx = new testEntities()) 
     { 
      string selectST = cbSeats.SelectedItem.ToString(); 
      string inputST = txtStation.Text; 

      var createStation = (from createST in Setupctx.stations 
            where createST.Seats == selectST 
            where createST.Station1 == inputST 
            select createST).SingleOrDefault(); 
      if (createStation != null) 
      { 
       Setupctx.stations.AddObject(createStation); 
       Setupctx.SaveChanges(); 
       txtStation.Text = ""; 

       MessageBox.Show("New Station Has Been Created."); 
      } 
     } 
    } 

您的幫助將不勝感激。

+0

您試圖更新「createStation」或創建一個新工作站嗎? – 2012-07-13 03:35:19

回答

1

這是做它的正確方法。

private void btnCreate_Click(object sender, EventArgs e) 
    { 
     using (testEntities Setupctx = new testEntities()) 
     { 
      string[] stations = StationNameList(); 
      station creStation = new station(); 
      creStation.Station1 = txtStation.Text; 
      creStation.Seats = cbSeats.SelectedItem.ToString(); 
      if (stations.Contains(txtStation.Text)) 
      { 
       MessageBox.Show("This Station is already been created. Please enter a new Station."); 
      } 
      else 
      { 
       Setupctx.stations.AddObject(creStation); 
       Setupctx.SaveChanges(); 
       txtStation.Text = ""; 
       cbSeats.SelectedIndex = -1; 
       MessageBox.Show("New Station Has Been Created."); 
      } 
     } 
    } 
0

只是爲了檢查出榜單:

  • 是否已進行了確認按鈕事件處理程序掛鉤?

當你說

什麼也沒有發生

你的意思是事件處理函數不是叫什麼名字?你實際上沒有對從數據庫中檢索到的電臺做任何事情。您將它重新添加到您已從中拉出的電臺列表中。

+0

含義我的select語句是錯誤的?我該怎麼做,因爲我想通過在文本框中鍵入文本並從組合框中選擇值來添加到我的數據庫中。任何解決方案 – Philemon 2012-07-13 03:23:07

+0

如果您可以通過代碼中的某些內嵌註釋來澄清代碼應該做什麼 – JamesD 2012-07-13 04:47:23

1

我同意@JamesD確保調用事件處理函數。

此外,當您從linq查詢中獲取對象並對其進行更改時,您需要通過在DataContext上調用SubmitChanges()來保存這些更改。 (我假設Setupctx是一個DataContext對象)。

這裏閱讀有關SubmitChanges()

另外,如果您使用的是SQL或沒有,我不知道。如果是這樣,這裏是一個偉大的教程:Linq to SQL Tutorial

1

你需要創建一個新的電臺對象是這樣的:

if (createStation != null) 
    { 
    var obj = new Staion(); 
    obj.Seats=selectST; 
    obj.Staion1=inputST; 


    Setupctx.Staions.Add(obj); 
    Setupctx.SubmitChanges(); 

    txtStation.Text = ""; 

    MessageBox.Show("New Station Has Been Created."); 
} 

更多關於LINQ To SQL here