关于linq to sql的数据绑定到dataview中提取的问题

如题。
我用这样的方式给dataview绑定数据

 var list_s = db.Course
              .Where(item => item.CourseName.Contains(txtForSearch.Text))
              .Where(item => cboClass.SelectedIndex == 0 ? true : item.ClassID == Convert.ToInt32(cboClass.SelectedIndex))
              .Where(item => cboTerm.SelectedIndex == 0 ? true : item.TermID == Convert.ToInt32(cboTerm.SelectedIndex));
            //  .Where(item => item.StartTime.Value == Convert.ToDateTime(StartDT))
            //.Where(item => item.EndTime.Value == Convert.ToDateTime(EndDT))
            //.Select(item => new
            //{
            //    课程号 = item.Id,
            //    课程名 = item.CourseName,
            //    任课教师 = item.Teacher,
            //    上课地点 = item.ClassRoom
            //});
            var a = list_s.Select(item => item.Id);
            var list = list_s
                .Select(item => new
                {
                    课程号 = item.Id,
                    课程名 = item.CourseName,
                    任课教师 = item.Teacher,
                    上课地点 = item.ClassRoom
                });
            this.dgvShow.ItemsSource = list;

然后,当我在selectionchange事件中提取gridview信息的时候,得到的结果总是空。

以下是我gridview中提取数据的代码段。


                //DataGrid dg = dgvShow.SelectedItem as DataGrid;
               // var cell = dg.CurrentItem;



              //  DataRow id = dgvShow.SelectedItems[0] as DataRow;
                         Course course = dgvShow.CurrentItem as Course;
              int a = course.Id;  


我尝试了好几种方法啊,都失败了。
现在唯一成功的方法是 我将数据表直接赋给gridview的数据源。
这样可以得到选取行的Id信息,但是数据表里冗余的数据和一些有外键关系的表的显示都出了问题,希望大家帮帮我。

1个回答

看下list是否有数据,调试下。可以用list.ToList().Count()看下返回的是不是0

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!