我正在通过Datagridview更新我的数据库。这是我的Update_Button代码:
public void SaveDataSet(DataTable table)
{
foreach (DataRow row in table.Rows)
{
SqlCommand cmd2 = new SqlCommand(
@"update dbo.JobStatus
SET ShipTransmitStatus = @TransmitStatus,
ShipTrackingNumber = @TrackingNum,
Carrier = @Carrier,
ShipmentProcessedBy = @ProcessedBy,
ShipMethodTransmitted = @MethodTransmitted,
WHERE JobTableId = @JobID ", _mySqlConnec);
//Updated the parameters to the SQL Query!
cmd2.Parameters.Add(new SqlParameter("@TransmitStatus", row["Status"].ToString()));
cmd2.Parameters.Add(new SqlParameter("@TrackingNum", row["Tracking#"].ToString()));
cmd2.Parameters.Add(new SqlParameter("@Carrier", row["Carrier"]));
cmd2.Parameters.Add(new SqlParameter("@ProcessedBy", row["ProcessedBy"].ToString()));
cmd2.Parameters.Add(new SqlParameter("@MethodTransmitted", row["MethodTransmitted"].ToString()));
cmd2.Parameters.Add(new SqlParameter("@JobID", row["JobID"].ToString()));
cmd2.Connection = _mySqlConnec;
_mySqlConnec.Open();
cmd2.ExecuteNonQuery();
_mySqlConnec.Close();
}
}
这是我的SELECT语句:
SELECT dbo.InvoiceLineDetail.JobNumber as Job#,dbo.InvoiceLineDetail.PatientName,
dbo.InvoiceLineDetail.CustomerAccountName as Name, COALESCE(InvoiceLineDetail.ShipAddressAddr2 + ' ','') + COALESCE(InvoiceLineDetail.ShipAddressAddr3+' ','') as Address,
dbo.InvoiceLineDetail.ShipAddressCity as City, dbo.InvoiceLineDetail.ShipAddressState as State,
dbo.InvoiceLineDetail.ShipAddressPostalCode as ZipCode, dbo.InvoiceLineDetail.ShipAddressCountry as Country , dbo.JobStatus.ShipTransmitStatus as Status, dbo.JobStatus.ShipTrackingNumber as Tracking#, dbo.JobStatus.Carrier, dbo.JobStatus.ShipMethodTransmitted as MethodTransmitted,
dbo.JobStatus.DateShipTransmitProcessed as DateProcessed, dbo.JobStatus.ShipmentProcessedBy as ProcessedBy, dbo.JobStatus.Critical, dbo.JobStatus.JobTableId as JobID, dbo.JobStatus.InvoiceStatus,
dbo.InvoiceLineDetail.Quantity, dbo.InvoiceLineDetail.ChargeGroup
FROM dbo.InvoiceLineDetail INNER JOIN
dbo.View_JobsToShipCount ON dbo.InvoiceLineDetail.CustomerAccountName = dbo.View_JobsToShipCount.CompanyName INNER JOIN
dbo.JobStatus ON dbo.InvoiceLineDetail.JobID = dbo.JobStatus.JobTableId
WHERE (dbo.InvoiceLineDetail.ChargeGroup = N'Lens')
我收到错误:'WHERE'附近的语法不正确。可以找出问题所在:(
答案 0 :(得分:8)
从以下位置删除最后一个逗号:
ShipMethodTransmitted = @MethodTransmitted,
即。将其更改为:
ShipMethodTransmitted = @MethodTransmitted
作为这类错误的一般答案:
这正是我现在所做的。我看着附近的地方,看到了额外的逗号。
答案 1 :(得分:3)
ShipMethodTransmitted = @MethodTransmitted,
删除@Method之后的逗号...
答案 2 :(得分:3)
在SaveDataSet函数中,SQL命令在WHERE子句之前有一个额外的逗号。