-1
LINQクエリを1つのセル(データテーブルは1つの行と1つの列しか持たない)でDataTable
を `String 'に変換します。1つのセルのみを持つデータテーブルを文字列に変換する
DataTable like this
| Name |
-----------
| Alice |
これを行う方法が既にある場合は素晴らしいでしょう。ありがとう
LINQクエリを1つのセル(データテーブルは1つの行と1つの列しか持たない)でDataTable
を `String 'に変換します。1つのセルのみを持つデータテーブルを文字列に変換する
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に少なくとも1つの行と1つの列があることが確かであれば、 'dt.Rows [0] [0] .ToString()'がそれを取得します。この特定のクエリが1つの値しか返さない場合は、DataTableを設定する代わりにDbCommandでExecuteScalar()を使用することを検討してください。 – KeithS
Linqはここに間違いなく間違っています。ExecuteScalarは1つの値だけを取得するように設計されており、 '.ToString()'はオブジェクトを文字列に変換します。すでにデータテーブルがあり、スカラーに変更できない場合は、最初の(唯一の)行の最初の(唯一の)列に 'Rows [0] [0]'にアクセスし、それから文字列を取得します。 – Andrew