2015-10-05 54 views
-1

我有一個DataTable對象使用下面的代碼加載。如何針對System.Data.DataTable對象執行SQL查詢?

DataSet dataset = new DataSet(); 
adapter.Fill(dataset); 
DataTable myDataTable = dataset.Tables[0]; 

我想針對DataTable對象執行此SQL查詢:

UPDATE myDataTable 
SET Enabled = 'YES' 
WHERE ID = '123'; 

我能做到這一點使用LINQ,但要求是要對DataTable對象執行SQL查詢。

我們該如何做到這一點?

+0

看一看[數據表中的行編輯(https://msdn.microsoft.com/en-us/library /tat996zc.aspx) –

+0

感謝huMpty ..我需要從字符串輸入動態創建查詢,並且可以有多個列進行更新。有什麼建議麼? –

+0

所以......您需要動態生成SQL語句,SQL語句永遠不會被看到或使用的SQL語句? 「不管你走錯路多遠,都要回頭。」 – STW

回答

1

問題是DataTable不是SQL的實現,雖然它理解非常有限的SQL子集。

您可以使用SELECT過濾,然後以編程方式更新行:

var myRows = myDataTable.Select("ID = '123'"); 
foreach (var row in myRows) 
{ 
    row["Enabled"] = "YES"; 
} 
+0

感謝Russ的建議。要求是在運行時對數據表執行更新查詢。列名在設計時是未知的。所以我想找出一種在運行時執行更新的方法。也可以有多個列進行更新,因此也不能使用解決方案的參數化版本。 –

+0

我強烈建議看看直接執行數據庫,使用SqlConnection,SqlCommand等。如果你在設計時不知道模式,那麼DataTable不會是最好的選擇;別介意他們幾乎被普遍鄙視! –

相關問題