2017-03-09 59 views
0

DataTableから値を検索しようとしていますが、エラーが発生しています。DataTableのルックアップ値C#

Ref。のユーザーが入力した値に基づいて、JobID列の値を探したいとします。ここで

は私のコードです:

string jobid = (from DataRow dr in Variables.jobstable.Rows 
where (string)dr["Ref"] == ctjobreference.Text 
select (string)dr["JobID"]).FirstOrDefault(); 

はここでエラーです:

Unable to cast object of type 'System.Int64' to type 'System.String'

私はintに私のコード内の型を変更しようとしたが、それは助けていないようでした - 私が間違って何をやっています?それとももっと良い方法がありますか?

+0

(long)drのようなものを試してください["JobID"] – MMK

答えて

3

をキャストしないでください:

(string)dr["JobID"] 

使用.ToString()

dr["JobID"].ToString() 

キャストは、オブジェクトの変換メソッドを使用していない、それはタイプが何か他のものであることをランタイム自体を伝えます。これらのタイプは互換性がありません。

関連する問題