我試圖使用幾個文本框從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。
任何幫助,將不勝感激!
ID_kupca指表「dbo.Kupec」。表格中不存在您嘗試通過的值。你可以檢查你是否有Kupec表中的價值?如果這樣的值不存在,並且你嘗試更新,那麼你會得到這個錯誤 –
那麼問題是,它是在表中。現在我有1到3的ID,如果我嘗試更新其中的任何一個,我會得到這個錯誤 –