2017-05-10 73 views
0

我試圖使用幾個文本框從datagridview以及我的數據庫進行更新。它在我嘗試更新ID_vozila和datum_nakupa時起作用,但當我嘗試更新id_prodaje,id_prodajalna和id_kupec時,它給了我錯誤。嘗試使用文本框和按鈕從datagridview更新數據時出錯

錯誤說:

類型「System.Data.SqlClient.SqlException」未處理的異常出現在system.data.dll

附加信息:UPDATE語句衝突與外鍵約束「 FK__Prodaja__ID_kupc__1920BF5C」。衝突發生在數據庫「C:\ USERS \ UPORABNIK \ DOCUMENTS \ VISUAL STUDIO 2013 \ PROJECTS \ NALOGA \ NALOGA \ BIN \ DEBUG \ PRODAJA.MDF」,表「dbo.Kupec」,列'ID_kupca'中。

這是按鈕被按下時運行的代碼。

int selectedIndex = prodajaDataGridView.SelectedRows[0].Index; 

      int rowID = int.Parse(prodajaDataGridView[0, selectedIndex].Value.ToString()); 

      string query = "Update Prodaja set ID_prodajalca = @Prodajalec, ID_prodajalne = @Prodajalna, ID_kupca = @Kupec, ID_vozila = @Vozilo, Datum_nakupa = @DatumNakupa where ID_prodaje="+rowID; 

      using (connection = new SqlConnection(connectionString)) 
      using (SqlCommand command = new SqlCommand(query, connection)) 
      { 

       connection.Open(); 
       command.Parameters.AddWithValue("@Prodajalec", iD_prodajalcaTextBox.Text); 
       command.Parameters.AddWithValue("@Prodajalna", iD_prodajalneTextBox.Text); 
       command.Parameters.AddWithValue("@Kupec", iD_kupcaTextBox.Text); 
       command.Parameters.AddWithValue("@Vozilo", iD_vozilaTextBox.Text); 
       command.Parameters.AddWithValue("@DatumNakupa", datum_nakupaDateTimePicker.Value.ToString("yyyy.MM.dd").Replace(" ", "")); 
       command.ExecuteNonQuery(); 



      } 

即使世界在具有屬性集合,所有的IDS都identitty設置以及數據庫anotother ID。

任何幫助,將不勝感激!

+0

ID_kupca指表「dbo.Kupec」。表格中不存在您嘗試通過的值。你可以檢查你是否有Kupec表中的價值?如果這樣的值不存在,並且你嘗試更新,那麼你會得到這個錯誤 –

+0

那麼問題是,它是在表中。現在我有1到3的ID,如果我嘗試更新其中的任何一個,我會得到這個錯誤 –

回答

0

問題是從你數據庫端的關係 你需要檢查你的鍵和外鍵,你不能改變一個外鍵不在主表

+0

我只使用表中的外鍵 –

+0

whatch this table table「dbo.Kupec」,column'ID_kupca'sure the鍵不在那裏 –

+0

kupec中有3行,它們都有'ID_kupca',但這些ID不在程序中工作。 –

相關問題