INSERT语句中的错误消息

kel*_*lly 1 c# sql t-sql sql-server

我相信我的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
Run Code Online (Sandbox Code Playgroud)

这就是我从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);
Run Code Online (Sandbox Code Playgroud)

Mah*_*mal 5

使用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";
Run Code Online (Sandbox Code Playgroud)

然而,你将得到后一个新的异常,因为你只能选择一个列插入到这四个栏目:SelectedApptDate, SelectedApptStartTime, SelectedApptEndTime, SelectedWeddingPlanner.您还必须在SELECT语句中指定其他三列.