2015-10-28 63 views
0

我從實驗室取下一些測試名稱。我需要將它們與我目前存儲的內容進行比較,以查看是否需要更新或插入新記錄。使用數據表選擇方法的正確方法

db表中的當前測試名稱看起來像這樣HGBA2%'(注意最後的單引號)。

在我的代碼中,我從數據庫中取回所有測試名稱。我試圖通過這樣做來與傳入的測試名稱匹配:

drs = dt.Select("test_id = " + lstIds[j]); 

lstIds [j]包含傳入的測試名稱。這顯然會引發錯誤,因爲它無法處理select中的單引號。查看現有表格以比較它們的正確方法是什麼?

Thx。 車轍

回答

1

我會用Linq-To-DataTable代替:

DataRow[] drs = dt.AsEnumerable() 
    .Where(row => row.Field<string>("test_id") == lstIds[j]) 
    .ToArray(); 

使用DataTable.Select只比LINQ的可讀性和強大。它是有限的。

Here's解決方法如果您必須使用它,f.e.如果這是一箇舊項目。