我想在表Article
中插入数据,该表具有表Categorie
的外键。
我用TextBoxes创建了一个表单,然后将外键放在一个有界的ComboBox到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);
所以我的问题是如何以正确的方式插入查询?
提前致谢。
答案 0 :(得分:0)
试试这个:
insertCommande1.Parameters.AddWithValue("@IdCategorie", idCategorieComboBox.SelectedValue.ToString());