尝试根据使用WHERE子句输入Powershell形式的值将值插入MS Access DB。我收到一个简单的错误,但仍在努力解决(“ SQL语句末尾缺少分号(;)”
这是我的基本代码;
$query = "INSERT INTO SignIns ([DateTimeOUT], [SignedOut]) VALUES ('$($info.F1)','$($info.F2)') FROM $Info WHERE SignIns.Surname = '$($Info.F3)'"
$cmd = $conn.CreateCommand()
$cmd.CommandText = $query
$result = $cmd.ExecuteNonQuery()
$conn.Close()
我已经修改了在我认为可以解决的所有位置添加分号的方法,但是没有运气,仍然返回相同的错误(在SQL语句末尾缺少分号);
$query = "INSERT INTO SignIns ([DateTimeOUT], [SignedOut]) VALUES ('$($info.F1)','$($info.F2)') FROM $Info WHERE SignIns.Surname = '$($Info.F3);';";
$cmd = $conn.CreateCommand()
$cmd.CommandText = $query;
$result = $cmd.ExecuteNonQuery();
$conn.Close()
(作为参考,我在WHERE子句的末尾,在$ Query变量的末尾添加了分号,并尝试在$ cmd.commandtext变量中执行时追加到$ query的末尾,以及$ result变量的末尾。
我希望该语句正常执行并使用给定值进行更新。在Access DB本身中进行测试很困难,因为我无法从数据库中引用我的PS表单。任何帮助表示赞赏,
谢谢。
答案 0 :(得分:0)
更新:现在,将查询修改为UPDATE可以让我按照简单的逻辑用WHERE语句“插入”值。
$conn.Open()
$query = "UPDATE SignIns SET DateTimeOUT = '$($info.F1)' WHERE SignIns.Surname = '$($Info.F3)'";
$cmd = $conn.CreateCommand()
$cmd.CommandText = $query;
$result = $cmd.ExecuteNonQuery();
$query = "UPDATE SignIns SET SignedOut = '$($info.F2)' WHERE SignIns.Surname = '$($Info.F3)'";
$cmd = $conn.CreateCommand()
$cmd.CommandText = $query;
$result = $cmd.ExecuteNonQuery();
$conn.Close()
当向表中输入新值时,这不是我通常使用的方法,但结果相同。.我认为没有任何含义。可能会将更新作为“从NULL更新到VALUE”,而不是将INSERT从源更新到DESINTATION(在其中)