如何在带有外键的表中插入数据
本文关键字:插入 数据 | 更新日期: 2023-09-27 18:35:07
我想在表 Article
中插入数据,该表具有表 Categorie
的外键。
我用文本框创建了一个表单,并将外键放在一个有界的组合框中Categorie
表。这是我使用的代码:
private void button15_Click(object sender, EventArgs e)
{
SqlConnection con3 = new SqlConnection();
con3.ConnectionString = @"Data Source=.'SQLEXPRESS;AttachDbFilename=|DataDirectory|'GestStock.mdf;Integrated Security=True;User Instance=True";
con3.Open();
SqlCommand insertCommande1 = new SqlCommand("INSERT INTO [Article] (CodeArticle, LibArticle, IdCategorie, Quantite, StockActuel, StockMinimum, PrixAchat, DateAchat, NumeroFacture)" +
"VALUES(@CodeArticle, @LibArticle, @IdCategorie, @Quantite, @StockActuel, @StockMinimum, @PrixAchat, @DateAchat, @NumeroFacture)", con3);
insertCommande1.Parameters.AddWithValue("@CodeArticle", codeArticleTextBox1.Text);
insertCommande1.Parameters.AddWithValue("@LibArticle", libArticleTextBox.Text);
insertCommande1.Parameters.AddWithValue("@IdCategorie",idCategorieComboBox.Text);
insertCommande1.Parameters.AddWithValue("@Quantite", Convert.ToInt32(quantiteTextBox1.Text));
insertCommande1.Parameters.AddWithValue("@StockActuel", Convert.ToInt32(stockActuelTextBox1.Text));
insertCommande1.Parameters.AddWithValue("@StockMinimum", Convert.ToInt32(stockMinimumTextBox1.Text));
insertCommande1.Parameters.AddWithValue("@PrixAchat", Convert.ToInt32(prixAchatTextBox1.Text));
insertCommande1.Parameters.AddWithValue("@DateAchat", Convert.ToDateTime(dateAchatDateTimePicker1.Text));
insertCommande1.Parameters.AddWithValue("@NumeroFacture", numeroFactureTextBox.Text);
insertCommande1.ExecuteNonQuery();
MessageBox.Show("L'article est ajouté avec succées");
con3.Close();
}
但是当我执行此代码时,Article
已成功添加,但是当我退出应用程序并重新运行它时,我收到以下错误消息:
无法启用约束。一行或多行包含违反类型约束的值,而不是 null、唯一或外键。
我知道这是由这个引起的
insertCommande1.Parameters.AddWithValue("@IdCategorie", idCategorieComboBox.Text);
所以我的问题是如何以正确的方式进行插入查询?
提前谢谢。
试试这个:
insertCommande1.Parameters.AddWithValue("@IdCategorie", idCategorieComboBox.SelectedValue.ToString());