2010-12-15 8 views
0

Datagridview를 통해 내 DB를 업데이트 중입니다. 여기 내 Update_Button 코드 :'WHERE'근처의 잘못된 구문

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') 

I 오류가 점점 오전 : 근처의 구문이 잘못되었습니다 'WHERE'. 에서 문제 :(

답변

8

제거 마지막 쉼표 찾을 수 없습니다 :

    : 이러한 종류의 오류에 대한 일반적인 답변으로

    ShipMethodTransmitted = @MethodTransmitted 
    

    :

    ShipMethodTransmitted = @MethodTransmitted, 
    

    을 즉로 변경

  1. 오류 메시지에서 제안 된 키워드 근처를 둘러보십시오.
  2. ror 메시지는 오류가있는 라인을 보여줍니다. line

바로 지금 내가 한 일입니다. 나는 어디에서 보았고 여분의 쉼표를 보았다.

3
ShipMethodTransmitted = @MethodTransmitted, 

@Method 후 쉼표를 제거 ...

?

3

SaveDataSet 함수에서 SQL 명령에는 WHERE 절 앞에 쉼표가 하나 더 있습니다.

관련 문제