2012-01-11 156 views
4

我在「adapter.Fill(dtROI)」上得到「Can not call method on varchar」錯誤。你能幫我解決嗎?我試圖用sql語句中的適配器結果填充數據表。無法在varchar錯誤上調用方法

protected void LoadData() 
{ 
    DateTime StartDate = dpStartDate.Date; 
    DateTime EndDate = dpEndDate.Date; 

    string sql = string.Empty; 

    using (SqlConnection conn = new SqlConnection()) 
    { 
     conn.ConnectionString = ConfigurationManager.ConnectionStrings["VTC"].ConnectionString; 
     conn.Open(); 

     sql = "select RESERVATION.MEETING_PURPOSE, RESERVATION.PROGRAM_AREA, RESERVATION.START_DATE, RESERVATION.END_DATE, " + 
        "ROI_TRACKING.ENTRY_LOCATION, ROI_TRACKING.SALARY_SAVINGS, ROI_TRACKING.TRANSPORTATION_SAVINGS, ROI_TRACKING.TOTAL_SAVINGS. " + 
        "ROI_TRACKING.TOTAL_DISTANCE, ROI_TRACKING.TOTAL_FUEL, ROI_TRACKING.TOTAL_GSA, ROI_TRACKING.TOTAL_AIRFARE, ROI_TRACKING.TOTAL_INSPECTOR_SALARY, " + 
        "ROI_TRACKING.TOTAL_MGR_SALARY, ROI_TRACKING.TOTAL_SUPERVISOR_SALARY " + 
        "from RESERVATION, ROI_TRACKING WHERE ROI_TRACKING.MEETING_ID = RESERVATION.MEETING_ID"; 

     using (SqlCommand cmd = new SqlCommand(sql, conn)) 
     { 
      SqlDataAdapter adapter = new SqlDataAdapter(); 
      adapter.SelectCommand = cmd; 

      DataTable dtROI = new DataTable(); 
      adapter.Fill(dtROI); 
      gridReports.DataSource = dtROI; 
      gridReports.DataBind(); 

     } 

     if (chkDate.Checked == true) 
     { 
      FilterDataGridByDate(StartDate, EndDate); 
     } 
    } 
} 
+1

您是否嘗試將sql語句複製到Sequel Server Management Studio並從那裏運行?你有結果嗎? – 2012-01-11 20:21:30

回答

7

我注意到你有'。'而不是','在ROI_TRACKING.TOTAL_SAVINGS之後。它應該是ROI_TRACKING.TOTAL_SAVINGS,

希望這會有所幫助。

+0

傻了。它修正了:) – JTRookie86 2012-01-12 01:24:19