3

LINQ クエリで次の例外が発生します。

タイプ 'System.Int16' のオブジェクトをタイプ 'System.String' にキャストできません。


 var query = from t in dt.AsEnumerable()
                        select new
                        {
                            sys_db= t.Field<Int16>("process_id").ToString() + "|" + t.Field<string>("db_code").ToString(),
                            process_name = t.Field<string>("process_name").ToString()
                        };

この問題が発生する理由と修正方法

4

2 に答える 2

1

この問題が発生する理由

これは、Int16 フィールドを文字列に読み込もうとしているために表示されますが、これは許可されていません

それを修正する方法

まず最初に、実際には int16 であり、文字列として読み取っているフィールドを特定します。あなたのコードから、おそらくこのフィールドです

t.Field<string>("db_code")

に変更する必要があります

t.Field<Int16>("db_code")
于 2013-08-26T11:22:20.667 に答える