-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