【发布时间】:2014-12-24 09:50:18
【问题描述】:
我想在表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 已成功添加,但是当我退出应用程序并重新运行它时,我收到以下错误消息:
未能启用约束。一行或多行包含违反类型约束的值,非空、唯一或外键。
我知道是这个原因造成的
insertCommande1.Parameters.AddWithValue("@IdCategorie", idCategorieComboBox.Text);
所以我的问题是如何以正确的方式进行插入查询??
提前致谢。
【问题讨论】:
-
你能把你的错误信息翻译成英文吗?
-
无法启用约束。一行或多行包含违反类型约束的值,非空、唯一或外键。
-
您必须将此类值插入到构建 FK 的表中存在的
IdCategorie。 -
不要在页面中写查询,尝试使用存储过程,SP为您提供解决方案..
-
如何使用存储过程??能给个链接吗??
标签: c# sql-server insert foreign-keys