在一条语句中插入或更新访问数据库

本文关键字:更新 访问 数据库 插入 一条 语句 | 更新日期: 2023-09-27 18:20:51

我正在尝试编写一条sql语句,以便通过OleDCommand更新(如果记录已经存在)或将数据记录插入访问数据库。

sql语句:

string sql = "IF EXISTS (SELECT * FROM tblMitarbeiter_Arbeitsform WHERE (fkLogin = '" + _Login.ToUpper() + "') AND (fkIdArbeitsform = " + dr.fkIdArbeitsform  + "))";
       sql += " UPDATE tblMitarbeiter_Arbeitsform SET (Prozent = " + dr.Prozent + ")";
       sql += " WHERE (fkLogin = '" + _Login.ToUpper() + "') AND (fkIdArbeitsform = " + dr.fkIdArbeitsform + ")";
       sql += " ELSE INSERT INTO tblMitarbeiter_Arbeitsform (fkLogin, fkIdArbeitsform, Prozent) VALUES ('" + _Login.ToUpper() + "', " + dr.fkIdArbeitsform + ", " + dr.Prozent + ")";

oCmd = new OleDbCommand(sql, getOekobonusConnection());
oCmd.ExecuteScalar();
//oCmd.ExecuteNonQuery();

ExecuteScalar和ExecuteNonQuery都不工作。我做错了什么?

在一条语句中插入或更新访问数据库

Access SQL中无法控制流结构,因此您无法执行IF。您必须拆分逻辑并在代码中进行测试,然后相应地发布更新或插入。