我在LINQ查询中,查询出来的user_id是字符串型的,我怎么把它变为int型的呢,用过 Convert.ToInt32(item.Field<string>("user_id")) > 2160 这样会报错。下面这段代码要怎么改才正确? var querymy = from item in ds.Tables["test"].AsEnumerable() where  item.Field<string>("user_id") > 2160 select item;
            foreach (var item in querymy)

解决方案 »

  1.   

    我觉得初学者在使用linq 时候使用泛型集合来保存 数据
    public class Data 
        {
            private string str_id;        public string Str_id
            {
                get { return str_id; }
                set { str_id = value; }
            }
            private string str_id1;        public string Str_id1
            {
                get { return str_id1; }
                set { str_id1 = value; }
            }
            private string str_id2;        public string Str_id2
            {
                get { return str_id2; }
                set { str_id2 = value; }
            }
            private string str_id3;        public string Str_id3
            {
                get { return str_id3; }
                set { str_id3 = value; }
            }
            private string str_id4;        public string Str_id4
            {
                get { return str_id4; }
                set { str_id4 = value; }
            }
            private string str_id5;        public string Str_id5
            {
                get { return str_id5; }
                set { str_id5 = value; }
            }
        }
     List<Data> List = new List<Data>();
                Data d = null;
                for (int i = 0; i < 5; i++)
                {
                    d = new Data();
                    d.Str_id = i.ToString();
                    d.Str_id1 = i.ToString();
                    d.Str_id2 = i.ToString();
                    d.Str_id3 = i.ToString();
                    d.Str_id4 = i.ToString();
                    d.Str_id5 = i.ToString();
                    List.Add(d);
                }
    取出来的datatable 可以赋值给List 集合 
    也可以直接 SqlDataReader 的方法来读取数据存放集合
     这样的你需要那个字段的类型全部有自己控制linq 为 
    var list =from a in list
              where a>30
              slect a;
    这样会很简单的
    在获取数据的时候
    可以
     foreach (var item in querymy)
    {
            可以从新定义集合存放值
    }