[英]Error message in INSERT Statement
我相信這里的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
語句中指定其他三列。
您不要用,
分隔WHERE
子句。 您是說AND
嗎?
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
您還需要SELECT
四列,而不只是一列。
SELECT語句中只有一列,但是INSERT希望有四列。 模式是什么樣的?
您想從表“約會”中將哪些字段傳遞到INSERT中?哪些字段應該來自變量?
您的WHERE
子句應包含AND
或OR
。
例如:
command.CommandText = "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";
同樣,您的INSERT
語句包含4列,但是您在SELECT
語句中僅返回1列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.