我相信这里的INSERT语句有问题。当我运行代码时,错误消息显示:


  行数:5
  错误:Sys.WebForms.PageRequestManagerServerErrorException:','附近的语法不正确。


我的where子句有问题吗?

这是我的INSERT语句:

INSERT into AppointmentDetails (SelectedApptDate, SelectedApptStartTime,
                                SelectedApptEndTime, SelectedWeddingPlanner)
   SELECT
       ApptID
   from
       Appointment
   INNER JOIN
       Appointment ON Appointment.ApptID = AppointmentDetails.ApptID
   WHERE
       SelectedApptDate = @SelectedApptDate,
       SelectedApptStartTime = @SelectedApptStartTime,
       SelectedApptEndTime = @SelectedApptEndTime,
       SelectedWeddingPlanner = @SelectedWeddingPlanner


这就是我从C#调用它的方式:

    command.CommandText = "INSERT into AppointmentDetails (SelectedApptDate, SelectedApptStartTime, SelectedApptEndTime, SelectedWeddingPlanner) SELECT ApptID from Appointment INNER JOIN Appointment ON Appointment.ApptID = AppointmentDetails.ApptID WHERE SelectedApptDate = @SelectedApptDate, SelectedApptStartTime = @SelectedApptStartTime, SelectedApptEndTime = @SelectedApptEndTime, SelectedWeddingPlanner = @SelectedWeddingPlanner";

    command.Connection = connection;
    command.Parameters.AddWithValue("@SelectedApptDate", dateSelected);
    command.Parameters.AddWithValue("@SelectedApptStartTime", timeStart);
    command.Parameters.AddWithValue("@SelectedApptEndTime", timeEnd);
    command.Parameters.AddWithValue("@SelectedWeddingPlanner", weddingplanner);

最佳答案

使用AND而不是,来分隔WHERE子句中的条件。您必须这样写:

INSERT into AppointmentDetails (SelectedApptDate, SelectedApptStartTime,
           SelectedApptEndTime, SelectedWeddingPlanner)
SELECT ApptID
from Appointment
INNER JOIN Appointment ON Appointment.ApptID = AppointmentDetails.ApptID
WHERE SelectedApptDate = @SelectedApptDate
   AND  SelectedApptStartTime = @SelectedApptStartTime
AND SelectedApptEndTime = @SelectedApptEndTime
AND  SelectedWeddingPlanner = @SelectedWeddingPlanner";


但是,此后您将得到一个新的例外,因为您只选择了一个列要插入到这四列中:SelectedApptDate, SelectedApptStartTime, SelectedApptEndTime, SelectedWeddingPlanner。您还必须在SELECT语句中指定其他三列。

关于c# - INSERT语句中的错误消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11453711/

10-13 07:52