在 C# 中将 LinQ var 转换为数据表,出现“指定的强制转换无效”异常

本文关键字:转换 异常 无效 出现 LinQ 中将 var 数据表 | 更新日期: 2023-09-27 18:30:23

我正在尝试将Linq加载到C#中的DataTable中。我使用了下面的代码,但在编译时我遇到了异常specified cast is not valid

DataTable dt = new DataTable();
dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("Name", typeof(int));
dt.Columns.Add("MobileNumber", typeof(int));
dt.Columns.Add("Address", typeof(int));
dt.Columns.Add("FatherName", typeof(int));
var results =
    from table1 in tree.AsEnumerable()
    join table2 in direct.AsEnumerable()
        on (int)table1["ID"] equals (int)table2["ID"]
select new
{
    ID = (int)table1["ID"],
    Name = (int)table1["Name"],
    MobileNumber = (int)table1["MobileNumber"],
    Address = (int)table2["Address"],
    FatherName = (int)table2["FatherName"],
};
foreach (var item in results)
{
    DataRow dr = dt.NewRow();
    dr["ID"] = item.ID;
    dr["Name"] = item.Name;
    dr["MobileNumber"] = item.MobileNumber;
    dr["Address"] = item.Address;
    dr["FatherName"] = item.FatherName;
    dt.Rows.Add(dr);
}

在 C# 中将 LinQ var 转换为数据表,出现“指定的强制转换无效”异常

所有列都是 int 类型。 我将假设姓名,手机号码和父亲姓名是一个字符串。