无法将“System.Int16”类型的对象转换为“System.String”类型

Any*_*are 7 .net c# linq asp.net casting

我在 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()
                        };
Run Code Online (Sandbox Code Playgroud)

为什么会出现这个问题以及如何解决它?

xan*_*tos 5

t.Field<string>("db_code").ToString()
Run Code Online (Sandbox Code Playgroud)

也许应该是这样的:

t.Field<short>("db_code").ToString()
Run Code Online (Sandbox Code Playgroud)

或同等学历

t.Field<Int16>("db_code").ToString()
Run Code Online (Sandbox Code Playgroud)