2016-01-13 44 views
0

我知道這個錯誤/問題已經發布了很多。我一直在研究一段時間,仍然無法確定如何正確地更新我的數據庫,並在我的DataTable中進行更改。C#錯誤:更新與修改的行傳遞數據收集時需要有效的updatecommand?

我有一個DataTable充滿來自我的數據庫中的2個不同表的信息。只是對來自1個表格的列進行了更改。我需要加入計算的第二個表。

因此當我嘗試更新我的數據庫時,只會對1個表進行更改。我仍然需要ado.net,所以即時通訊應用正確的方式來應用這些更改基於來自MSDN和StackOverflow的信息。

這是我的代碼:

using (SqlCommand cmd = new SqlCommand("SELECT INCIDENT_NO, report_dt,MIN(theStart) as The_Start, Resolved_DT, Resolution_TIME, resolution_met,response_met,max_response_time,max_resolution_time,impact FROM TICKET_REPORT JOIN TimeTracker ON Incident_NO=theTask WHERE Resolved_DT != '' GROUP BY INCIDENT_NO,report_dt,Resolved_DT,Resolution_Time, resolution_met,response_met,max_response_time,max_resolution_time,impact", sqlConn)) 
      { 
       var calc = new Calculation(holidays, new OpenHours("09:00;17:00")); 
       SqlDataAdapter da = new SqlDataAdapter(cmd); 
       dtResolution.Columns.Clear(); 
       dtResolution.Clear(); 
       da.Fill(dtResolution); 

       //-------Making calculation changes to columns from one table in datatable here--------- 
       try 
       { 
        da.Update(dtResolution); 
        Console.WriteLine("Update successful"); 
       } 
       catch(Exception ex) 
       { 
        Console.WriteLine("Updated failed"); 
        Console.WriteLine(ex.Message); 
       } 
       da.Dispose(); 
      } 

我靠在那CommandBuilder的會爲我創造了更新命令,但MSDN說,我只能用CommandBuilder的,如果我的SELECT語句只包括1臺,我有2個二。

其他StackOverflow的答案是說,如果即時通訊使用JOIN,我自己。

我該如何正確完成此更新?我可以在C#中執行此操作嗎?我應該將數據表傳遞給sqlserver中的存儲過程嗎?

回答

0

我發現只是在存儲過程中創建一個合併語句並將數據表傳遞給存儲過程更容易。

+0

add solution pls –

相關問題