-1
將單個單元格(數據表只有一行和一列)的DataTable
轉換爲「String」的任何LINQ查詢。將僅有一個單元格的DataTable轉換爲字符串
DataTable like this
| Name |
-----------
| Alice |
如果已經有一種方法可以做到這一點,那將會很棒。謝謝
將單個單元格(數據表只有一行和一列)的DataTable
轉換爲「String」的任何LINQ查詢。將僅有一個單元格的DataTable轉換爲字符串
DataTable like this
| Name |
-----------
| Alice |
如果已經有一種方法可以做到這一點,那將會很棒。謝謝
爲什麼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();
}
我不認爲LINQ的是正確的在這裏回答。如果你確定DataTable至少有一行和一列,那麼'dt.Rows [0] [0] .ToString()'將檢索它。如果此特定查詢只返回一個值,請考慮在您的DbCommand上使用ExecuteScalar(),而不要設置DataTable。 – KeithS
Linq肯定是錯誤的方法,'ExecuteScalar'被設計爲只有一個值,'.ToString()'將一個對象轉換爲一個字符串。如果你已經有了數據表並且不能改變爲標量,你可以訪問'Rows [0] [0]'第一行(唯一)中的第一個(唯一)列並從中獲取字符串。 – Andrew