2017-03-16 97 views
-1

將單個單元格(數據表只有一行和一列)的DataTable轉換爲「String」的任何LINQ查詢。將僅有一個單元格的DataTable轉換爲字符串

DataTable like this 
| Name | 
----------- 
| Alice | 

如果已經有一種方法可以做到這一點,那將會很棒。謝謝

+2

我不認爲LINQ的是正確的在這裏回答。如果你確定DataTable至少有一行和一列,那麼'dt.Rows [0] [0] .ToString()'將檢索它。如果此特定查詢只返回一個值,請考慮在您的DbCommand上使用ExecuteScalar(),而不要設置DataTable。 – KeithS

+2

Linq肯定是錯誤的方法,'ExecuteScalar'被設計爲只有一個值,'.ToString()'將一個對象轉換爲一個字符串。如果你已經有了數據表並且不能改變爲標量,你可以訪問'Rows [0] [0]'第一行(唯一)中的第一個(唯一)列並從中獲取字符串。 – Andrew

回答

2

爲什麼LINQ?

string firstName = table.Rows[0].Field<string>("Name"); // or Field<string>(0) 

如果一定要LINQ:

string firstName = table.AsEnumerable().First().Field<string>("Name"); 

如果你只從數據庫中選擇一個字段,你最好不要使用DataTable

using(var con = new SqlConnection("connectring")) 
using(var cmd = new SqlCommand("SELECT Name FROM Table WHERE Id = @Id", con)) 
{ 
    cmd.Parameters.Add("@Id", SqlDbType.Int).Value = 1234; 
    con.Open(); 
    string name = (string) cmd.ExecuteScalar(); 
} 
相關問題