从数据库中提取列最大值时抛出InvalidCastException

时间:2014-12-11 08:05:59

标签: c# asp.net linq-to-sql

我的SQL Server数据库中有3列,sr_no intuser_id nvarchar(50)name nvarchar(50)

当我运行下面的代码时,它会给我InvalidCastException,而当我从sr_no或名称找到最大值时,它会给我正确的值。

到目前为止,user_id中存储的值都是数值。

C#代码:

using (DataClassesDataContext context = new DataClassesDataContext())
{
    var id = (from a in context.User_profiles select a.user_id).Max();

    _id.Text = "USR-" + id.ToString();    
}

1 个答案:

答案 0 :(得分:0)

由于"数据到目前为止的整数格式为nvarchar" Max不会一直用于字符串,请尝试这样做,

    using (DataClassesDataContext context = new DataClassesDataContext())
    {
        var id = (from obj in context.User_profiles
                  let num = context.User_profiles.Select(x => x.user_id).Cast<int>().Max()
                  select num).FirstOrDefault();

        _id.Text = "USR-" + id.ToString();
    }

希望这会有所帮助......