2012-01-11 152 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