private void btnDodaj_Click(object sender, EventArgs e)
{
if (txtIme.Text == "")
{
MessageBox.Show("Unesite ime kandidata.");
return;
}
if (txtPrezime.Text=="")
{
MessageBox.Show("Unesite prezime kandidata.");
return;
}
if (numUspeh.Value==0)
{
MessageBox.Show("Unesite uspeh kandidata iz srednje skole.");
return;
}
if(numPoeni.Value==0)
{
MessageBox.Show("Unesite broj poena kandidata osvojenih na prijemnom.");
return;
}
dtpDatumRodj.Value = DateTime.Now;
OleDbConnection konekcija = new OleDbConnection(constring);
konekcija.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = konekcija;
cmd.CommandText = String.Format(
"INSERT INTO Kandidati(Ime,Prezime,DatumRodjenja,UspehSkola,PoeniPrijemni) VALUES ('{0}' ,'{1}' , '{2}' , '{3}' , '{4}' )"
,txtIme.Text,txtPrezime.Text,dtpDatumRodj.Value,numUspeh.Value,numPoeni.Value);
cmd.ExecuteNonQuery();
konekcija.Close();
ds.Clear();
da.Fill(ds);
当我点击该行上的“btnDodaj(btnAdd)”按钮时抛出异常
cmd.ExecuteNonQuery();
它说:
您向表格请求的更改未成功,因为 他们会在索引,主键或中创建重复值 relationship.Change包含的字段或字段中的数据 重复数据,删除索引或重新定义索引以允许 重复输入并重试。
我该如何纠正?
答案 0 :(得分:0)
我建议采取以下步骤:
如果能解决问题,请告诉我 祝你好运!
答案 1 :(得分:0)
在索引,主键或关系中创建重复值
从错误消息中可以看出,您尝试插入的数据包含已存在于数据库中的主键。因为插入会创建一个重复的密钥,是不允许的因此错误。
解决方案:您应首先检查您尝试插入的数据的主键是否已存在,而不是应该更新它而不是插入新主键。像
这样的东西IF EXISTS( Select 'x' from Kandidati WHERE YOurPrimaryKey = keyyouarepassing)
BEGIN
UPDATE Kandidati
values
....
WHERE
YOurPrimaryKey = keyyouarepassing
END
ELSE
BEGIN
INSERT into Kandidati ....
END